Vous n'êtes pas identifié(e).
nicolas a écrit :Quand je regarde les specs sur le w3c, je vois que chaque ligne (tr) doit contenir le même nombre de cellules (td ou th). Donc ta solution ne me semble pas logique.
Ta solution n'est pas plus conforme puisque certaines de tes lignes<tr> n'ont qu'1 <th> tandis que les autres ont 4<td>.
J'ai du mal comprendre un truc.
En fait en y regardant je ne comprends pas ma solution non plus. :-(
A mon tour de ne pas comprendre et d'être médusé.
J'ai 5 <tr> par item (un pour chacune des langues) seul le premier <tr> comporte 5 colonnes (1 <th> et 4<td>)
les quatre autres n'ont que 4 <td> puisque le <th rowspan="5"> du premier <tr> occupe la première colonne des 4 autres lignes.
Pour moi, ça c'est logique et cohérent.Qu'y-a-t-il de non confirme là-dedans ? J'ai toujours pratiqué et vu pratiquer de la sorte.
La logique de ton rowspan="6", par contre, me surprend, une ligne pour l'image et 5 lignes pour les 5 langues.
Mais, et à ma grande stupéfaction, ta solution donne exactement le même rendu ce qui reste pour moi un mystère.Et là, j'avoue, je n'y comprends plus rien.
Quand je regarde les specs sur le w3c, je vois que chaque ligne (tr) doit contenir le même nombre de cellules (td ou th). Donc ta solution ne me semble pas logique.
Par ailleurs, reste le problème que visibility:hidden ne cache que le contenu et n'enlève pas le background, contrairement à display:none qui, lui à le défaut de ne pas garder la stabilité du tableau en largeur et hauteur des colonnes.
Dans ce cas il faudrait tout mettre dans la classe correspondante et mettre que par défaut il n'y a pas de background : td { background: none }
Sinon, le cahier des charges stipule qu'un click sur un drapeau ou une image d'un autre item doit masquer les lignes déjà figées
Mais j'attends de savoir ce qu'en dira Dame 4'in. Après tout, quand on clique à nouveau sur l'image, les lignes se masquent.
Peut-être qu'elle voudra garder l'idée de pouvoir démasquer plusieurs items.
Ah bon ? Mais j'ai ce comportement ou alors on ne se comprend pas bien. Si je clique sur un drapeau, je rends la ligne visible de manière pérenne. Si je clique sur un autre drapeau (ou sur le même) je la rends de nouveau invisible et éventuellement la nouvelle visible (si j'ai cliqué sur une autre). Ce n'est pas cela ?
Bon, tu n'auras vraiment pas voler ton pot de miel, que d'émotions et de découvertes !
*- on peut cliquer sur tout
*- un comportement inconnu du rowspan
*- et je ne parle même pas de JQuery.
je ne connais pas jQuery parfaitement mais je me débrouille ! :-)
Je crois que tu auras même droit à ma spécialité, le pain d'épices aux fruits secs.
Pour répondre (enfin) à ta question nous avons actuellement 3 colonies d'abeilles et nous ne comptons pas aller au-delà de 6. Quatre chez nous et deux (au printemps et en été) chez fille aînée à Penmarc'h.
Je dis bien actuellement car l'époque n'est pas très réjouissante pour les abeilles entre le varroa, les pesticides les saloperies genre Cruiser et autres néonicotinoïdes, et la vespa velutina (frelon asiatique) qui s'annonce déjà vers Châteaulin, la santé des abeilles est précaire.
Je me suis déclaré comme récupérateur d'essaims, ce qui nous permet, bon an mal an, de maintenir notre cheptel. Mais ce n'est pas une sinécure. Il faut vraiment avoir la passion.
Ainsi, ce matin, j'étais chez mon allergologue car les trois dernières fois que je me suis fait piqué, j'ai fait un choc anaphylactique (tension, rougeurs, tachycardie et éruption d'urticaire sur tout le corps en à peine 5 minutes). Je souhaite me faire désensibiliser mais il semble, en première analyse, qu'il y ait une interférence entre le médicament que je prends contre l'hypertension et le venin des abeilles.
Il faut donc avoir le cœur bien accroché pour s'occuper d'abeilles.Bon il faut que j'aille ranger un peu le sous-sol. Petit à petit l'abeille fait ses rayons.
Ĝis, dankon, amike, MK.
Ma spécialité était le pain d'épice "nature" : miel, farine de froment, farine de sarazin, anis, ... On laisse sécher la pate plusieurs jours et on fait cuir.
Lorsque j'aidais mon père il y a de cela une quinzaine d'année il avait entre 50 et 100 ruches suivant les années. On était entre 2 et 3 tonnes de miel mille fleurs. Je n'ai pas la malchance d'être plus ou moins allergique. J'ai été piqué des dizaines de fois même à travers les gants lorsqu'on avait la mauvaise idée de tenter de récupérer des hausses une journée orageuse au mois d'août !!!
Je n'ai jamais récupéré d'essaim moi même mais je l'ai vu faire. J'en garde un super souvenir : mon père voit l'essaim accroché à une branche d'arbre. Il va chercher un seau et une échelle. Il met le seau sous l'essaim, secoue la branche. Il verse après le contenu du seau dans une demi-ruche (6 cadres) et remet le couvercle. Et avant la musique.
Mon père ne payait que les essaims qu'il achetait. Il est exploitant agricole avec des forêts en plus de ses champs. Du coup il fabriquait ses ruches lui même. Je l'ai beaucoup aidé entre 15 et 25 ans et je pense que j'aurai aimé ce métier. Comme tu dis, tous les "ennemis" des abeilles rendent le métier ou l'amateurisme plus compliqué.
C'est rigolo que ta fille soit de Penmar'ch. La propriétaire de la maison que je louais à Pont l'Abbé habitait Penmar'ch
Je viens de comprendre ce qui me gênait dans ton code. Dans la première ligne tu mets th rowspan="5" et ensuite 4 td. Ce n'est pas logique, ni valide.
Voici le html que je te propose (et qui te donnera le même rendu):
La feuille de style associée en ajoutant le curseur plus joli au survol des drapeaux :
table tr td { visibility: hidden;}
table tr td.flg {visibility: visible;cursor:pointer;}
table tr.active td, table tr.clicked td, table tr.th-clicked td { visibility: visible;}
J'ai ajouté la fonctionnalité du clic sur le veau et voici le javascript :
$('th').click(function(e) {
var nb_tr = parseInt($(this).attr('rowspan'), 10) - 1;
var current = $(this).parent();
var th_clicked = false;
if ($(this).parent().next().hasClass('th-clicked')) {
th_clicked = true;
}
for (var i=0;i<nb_tr;i++) {
current = current.next();
if (th_clicked) {
current.removeClass('th-clicked');
} else {
current.addClass('th-clicked');
}
}
});
});
Le javascript est certainement perfectible mais l'idée est là.
Je n'avais pas vu mais ton tableau n'a pas la bonne structure ce qui n'aide pas à mettre en place la fonctionnalité souhaitée. Ajoute une partie thead et tbody et mets la ligne d'entête dans la partie thead.
Le plus simple serait de faire deux tableaux mais ce n'est pas forcément insurmontable sans.
Essaie de peaufiner le html pour que le tableau est une forme correcte. Après écrire le javascript pour mettre en place le clic sur le veau sera un jeu d'enfant !
Un immense MERCI, si tu passes par Plomo cet été, n'oublies pas de venir goûter mon miel (enfin celui que me font mes abeilles).
Je note. Je vais en Bretagne les 3 dernières semaines de juillet à Plougerneau.
Il faut enlever la première partie du javascript et ne garder que ce que je t'avais mis.
Chez moi ça marche comme dirait l'autre : http://www.nikrou.net/veau/
En jouant avec deux classes css, je pense que tu arrives au comportement voulu.
table tr td.flg {
visibility: visible;
}
table tr.active td, table tr.clicked td {
visibility: visible;
}
Et en javascript cela peut donner ça :
ça me semble clair et pas insurmontable. Je pense qu'en jouant avec la propriété is(':visible') de jquery tu devrais t'en sortir.
L'idée du deuxième script c'est de faire quelque chose comme ça (en remettant les liens autour des images de drapeaux :
En revanche côté expérience utilisateur ce n'est pas forcément optimal car ce n'est pas toujours très clair d'avoir deux types actions (over/out et clic) pour un même élément de la page. A toi de voir.
En relisant je crois que je comprends un peu mieux ce que tu souhaites faire. Dans ce cas, il faudrait ne rien faire sur l'événement mouseleave si j'ai bien compris. Il suffirait de ne laisser que click et mouseenter comme événement et virer hover (qui regroupe mouseenter et mouseout)
Bon, ton script pour le hover, que je viens de tester, remplit tout à fait le cahier des charges. Seule la ligne du drapeau de l'item survolé s'affiche (au passage, j'utilise display (none||table-cell) et non visibility, car visibility affiche le background, ce qui n'est pas souhaité, mais ce n'est qu'un détail);
Je t'en remercie donc amplement et à nouveau.
Pour le reste, tu as probablement raison, il y a tellement longtemps que je ne pratique plus qu'en dilettante que ma mémoire est probablement prise en défaut.
Crois-tu vraiment que ce soit la manque de pratique pour le problème de mémoire ? :-) Ne dis-tu pas cela pour te rassurer ? Mouarff. Je pars en courant de peur de me prendre un coup de canne.
Toutefois, puisque tu sembles l'ignorer, je te précise que nous autres, retraités, avons des emplois du temps délirants.
Je te confirmerai cela dans 30 ou 40 ans... peut-être plus si la situation ne s'améliore pas.
Aussi ne pourrai-je me pencher sur ta proposition que dans la soirée, car cette après-midi, passage à la déchetterie de Plonévez-Porzay pour vider la remorque (je suis en train de ranger le sous-sol sous l'impulsion tenace et assidue de Dame 4in), puis retour ici pour se changer et se rendre à Cinéville à Quimper pour une séance de connaissance du monde consacrée au pays cathare.
Comme une sorte de retour au source, pour moi, qui suis un lecteur assidu d'Henri Gougaud, notamment de Bélibaste.
Bélibaste, un nom qui, si on le décompose peut signifier "La guerre ça suffit", donc une profession de foi pacifiste. Quand on sait le sort qui fut réservé aux parfaits cathares ...
Et demain il me faudra consacrer un peu de temps à mes abeilles puisqu'elles ont décidé de commencer leur saison printanière depuis une bonne semaine maintenant. J'ai beau leur dire de se méfier d'un toujours possible coup de froid d'ici la fin mars elles n'en n'ont rien à cirer. Ce qui, pour des abeilles, est assez paradoxal.
Je connais un peu le coin où tu habites. J'ai passé 5 été de suite à Pont l'abbé en plein pays bigouden; une année à Crozon (enfin juste à côté) et l'été prochain pour la deuxième année consécutive nous allons à Plougerneau.
Et pour ta passion (enfin l'une de tes passions en dehors de Dame 4in), combien as-tu de ruches ? A la sortie du Lycée j'ai songé un moment à être apiculteur. Je ne me rappelle plus précisément ce qui m'a fait renoncé.
@+ et encore merci à toi.
Je t'en prie. N'hésite pas si tu as d'autres questions.
nicolas a écrit :Je me lance, sans certitude d'avoir compris à 100% ce que tu voulais faire. Personnellement je ne suis pas fan du javascript intrusif sans la page donc j'ai externalisé. De plus mettre un lien avec une ancre juste pour mettre un lien, c'est moyen ! :-) D'ailleurs tu avais fermé le lien directement ce qui peut poser des problèmes :
<a href="#" onmouseover="voisine(this);" onmouseout="devoisine(this);"/>... Ôte-moi d'un vague doute, normalement les évènements onmouseover() onmouseout() sont censés n'être réactifs que sur des ancres ou des areas de usemap ou les choses ont-elle à ce point changé ?
Je ne voudrais pas te brusquer dans ta retraite bien méritée mais même en Bretagne et depuis des lustres les événements liés à la souris (over, out, click, double click,...) sont actifs quels que soit l'élément survolé et bien évidemment quel que soit le navigateur.
Je pense que tu confonds avec la gestion de cette propriété visuelle côté utilisateur en css qui n'est possible que sur les liens (et assimilés) pour que cela fonctionne quel que soit le navigateur.
Restons simple, appelle-moi MAITRE, petit padawan, comme tout le monde.
Je n'ai pas le temps de tester dans l'immédiat mais ta proposition semble intéressante, a priori.
D'autant, qu'à terme, quand on cliquera sur le drapeau il faudra que je trouve le moyen de shunter l'action du onmouseout pour cette ligne (les colonnes resteront affichées jusqu'à ce qu'on clique sur un autre drapeau, même d'un autre item).
De toutes façons, merci pour ta sympathique contribution.
Amike MK.
Le fait d'externaliser le javascript te permettra de changer l'événement ou d'en ajouter ou de le rendre paramétrable.
Tu peux mettre ce que tu veux à la place de click, même plusieurs événements : exemple flag_event = "click hover"
Tu peux après récupérer le type de l'événement dans la fonction de callback.
Je me lance, sans certitude d'avoir compris à 100% ce que tu voulais faire. Personnellement je ne suis pas fan du javascript intrusif sans la page donc j'ai externalisé. De plus mettre un lien avec une ancre juste pour mettre un lien, c'est moyen ! :-) D'ailleurs tu avais fermé le lien directement ce qui peut poser des problèmes :
eu lieu de
J'ai viré tout ça.
Je suppose que tu as une class .flg dans ta feuille de style qui contient ça par exemple :
table tr td.flg {
visibility: visible;
}
Le code javascript pour afficher les libéllés correspondant à la langue est tout simplement (si j'ose dire) :
Si ce n'est pas ça grand chef, dis moi.
Peux-tu préciser ce que tu fais, quelles sont tes compétences et ce qu'il y a comme infrastructure derrière ton hébergement ?
Quel est le plus pertinent ou plutôt le plus rapide d'exécution :
- faire une requête générale puis trier les résultats (ma demande ci-dessus) ?
- faire plusieurs requêtes très ciblées ?C'est dans un souci de rapidité d'exécution que je voulais appliquer cette boucle. Peut-être ai-je tord.
Le plus rapide : faire une seule requête qui ramène les résultats ciblés.
... tutriel ...
C'est de l'espéranto ? :-)
Me pousse pas, je suis déjà dehors !
Est-ce que cela doit nécessairement être un bouton ou est-ce que cela doit seulement avoir l'apparence d'un bouton ?
Car si tu n'as besoin que de l'apparence d'un bouton, tu fais un bête lien (par exemple) et le tour est joué, après avec un peu de css !
Ce que tu as écrit :
Est-ce que le code écrit entre les balises php est réellement du php, d'après toi ?
non "nicolas" je suis pas en stage. fini les stage depuis 2006. je suis fonctionaire
Désolé. Cela y ressemblait très étrangement.
J'ai comme l'impression que tu es en stage ! Me trompe-je ? Ne serait-ce dans ce cas là, pas plutôt à ton maître de stage de poser ces questions ?
Sinon une autre méthode pour mettre à jour deux div est de générer qu'un seul bout de html et d'utiliser la méthode filter() (de jquery) pour identifier les contenus respectifs.
Et j'ajouterai, par parenthèses, que c'est une très mauvaise pratique que de ne pas crypter les mots de passe dans la base de données.
Je te propose comme solution : faire le traitement complet de ton formulaire avec le script inscription.php. C'est-à-dire que l'action (attribut action de la balise form) de ton formulaire est aussi le script inscription.php ($_SERVER['PHP_SELF'] peut devenir ton amie).
Il faudra évidemment que tu agisses en fonction des différents cas possibles :
1) chargement initial du formulaire
2) soumission du formulaire mais il manque des infos obligatoires
3) soumission du formulaire avec toutes les infos requises
Pour différencier les cas, tu te bases sur le contenu du tableau $_POST.
Dans le cas 3, tu inclus le script envoi_mail.php (instruction include). Si tu ne peux pas mettre ce script dans un endroit inaccessible par un URL, tu peux comme tu le proposais utiliser par exemple une constante. Le code pourrait ressemblé à ça :
Dans inscription.php :
Et dans envoi_mail.php, tout en haut, tu peux ajouter ça par exemple :
merci
! j'avais cherché pourtant !
Oui mais quand on ne sait pas ce qu'on cherche, ce n'est pas forcément facile de trouver ! Je parle par expérience car j'ai cherché plus longtemps que nécessaire cette même information !
Comme souvent la réponse est dans la documentation, à condition de savoir trouver la réponse :
http://www.php.net/manual/fr/simplexml. … -basic.php
Pour les noeuds xml qui contiennent des éléments non permis se fait en encapsulant entre crochets et quote :
@spokito : si au lieu de réinventer la roue tu utilisais un cms. A moins que ton site esait des besoins très particuliers je pense que ça résoudra tes problèmes. Bon pour la migration tu vas peut-être un peu galéréer mais après ce sera du temps gagné pour mettre du contenu.
Excellentes ces métaphores, je suis au bord de l'extase ! :-)