Pourtant, toutes les docs sont claires et unanimes, dans tous les langages, l'accès à un tableau se fait par "montableau[numChamp]". Sauf que ...
Contexte :
Je travaille en PHP, je crée un formulaire avec un tableau de longueur variable, avec des cases à cocher (style un calendrier, et je coche les dates que je réserve). Et je souhaite mettre un bouton de commande "Tout chocher", ou de même "tout décocher". Et là, selon la syntaxe, soit le PHP marche, soit le Javascript.
Solution 1 : pas de [] dans le formulaire HTML
Le Javascript peut "Tout cocher" en faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type='checkbox' name='semaine' value=$n >
Dans ce cas le PHP suivant ne récupère que la dernière valeur : si je coche 12 semaines, seule la 12° (la valeur 38 ) arrive dans le champ _HTTP_POST_VARS['semaine'].
Code : Sélectionner tout - Visualiser dans une fenêtre à part for (i=0;i<52,i++) document.forms.f_resa.semaine[i].checked =true;
Solution 2 : cette fois, je mets des [] dans le HTML
Ici, le PHP récupère toutes les valeurs dans le tableau $_REQUEST('semaine'], c'est nickel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type='checkbox' name='semaine[]' value=$n >
Mais cette fois, c'est le Javascript qui ne fait rien losque je clique sur "Tout cocher".
J'ai fait les même essais avec des zones de texte (colonne 'hidden' qui contient la valeur de la case à cocher), rien à faire, mais rien de rien. C'est quand même fou !
Sinon, la dernière idée, c'est de mettre dans mon formulaire un champ texte 'hidden' unique, qui va contenir la totalité du tableau "à plat", du style "Semaine1=Oui ; Semaine2=Oui, Semaine3=Non, ....". Charge au PHP qui recevra ça de tout décomposer. Ca devrait marcher, mais je trouverais ça dommage de bâtir une usine à gaz, pour un truc qui parait "ordinaire".
Merci d'avance pour votre coup de main.
Partager