OVH Cloud OVH Cloud

checkboxes multiples dynamiques

3 réponses
Avatar
foodbyfood
Alors voila un petit probleme, je sais pas comment le résoudre a
premiere abord. J'ai déja parcouru pal mal de groupes, et forums sans
trouver.

J'ai un formulaire avec qq lignes (nombre de lignes en fonction de ce
qui a été encodé dans la base de données).
Chaque ligne comprend 2 zone de texte, 1 select box, 2 check box.
Le probleme est le suivant, lors de la récupération dans un tableau,
les zones de texte et les select box ont le meme indice, par contre
les check box ont l'air de perdre le nord!!! (a chaque fois elles se
retrouvent dans les 10 premieres lignes, meme si je n'ai que la 50eme
de cochée!!!)

un petit morceau de code? mais biensur!!!
//---------------------------------------------
//voila le tableau en question :

$result = mysql_db_query ($MySqlDatabase,"
SELECT r.lib,r.px,r.restotypecarte,r.sugestion,r.specialite
FROM restocarte r
)or die ("<BR>".mysql_error());

while($l = mysql_fetch_row($result)){
echo"<tr>
<td><input value=\"$l[0]\" name=cartelib[] size=50></td>
<td><center><input value=\"$l[1]\" name=cartepx[] size=3>€</td>
<td>";
//là ma select box
PrintCarteCategSel($l[2],$carte);
echo"</td>";
//ici mes checkbox
echo"<td><center><input type=checkbox
name=cartspec[]".($l[4]=='on'?" checked":"")."></td>";
echo"<td><center><input type=checkbox name=cartsug[]".($l[3]=='on'?"
checked":"")."></td>";
echo"</tr>";

//---------------------------------------------
//ici je parcours le tableau, et je mets tout ce que je trouve dans ma
table
for($i=0;$i<sizeof($cartelib);$i++){
$result = mysql_db_query($MySqlDatabase,"
INSERT INTO restocarte
( lib,px,restotypecarte,specialite,sugestion )
VALUES
( '$cartelib[$i]','$cartepx[$i]','$cartecat[$i]','$specialite[$i]','$sugestion[$i]' )
")or die("<BR> erreur modif resto ".mysql_error());
}
//---------------------------------------------

Un tout grand merci a celui qui trouve, et ma reconnaissance et ma
gratitude éternelle en prime :-p

Nicolas

3 réponses

Avatar
P'tit Marcel
FoodByFood écrivit:

Alors voila un petit probleme, je sais pas comment le résoudre a
premiere abord. J'ai déja parcouru pal mal de groupes, et forums sans
trouver.


Trouver, c'est apprendre à chercher : sauf erreur, la réponse a été donnée
sur ce forum, et pas plus tard que mercredi dernier
<news:3f5f71c4$0$13286$


Un tout grand merci a celui qui trouve, et ma reconnaissance et ma
gratitude éternelle en prime :-p


attention, l'éternité c'est très long ;-)

--
P'tit Marcel

Avatar
foodbyfood
"P'tit Marcel" wrote in message news:...
FoodByFood écrivit:

Alors voila un petit probleme, je sais pas comment le résoudre a
premiere abord. J'ai déja parcouru pal mal de groupes, et forums sans
trouver.


Trouver, c'est apprendre à chercher : sauf erreur, la réponse a été donnée
sur ce forum, et pas plus tard que mercredi dernier
<news:3f5f71c4$0$13286$

Dans ton groupe, c'est un "select box" multiple. mon probleme, c'est

un table de "check box".

Note, j'ai pas mis de valeur aux check boxes, mais je me base sur leur
emplacement dans le tableau... ets-ce qu'une checkbox vide n'est pas
reprise dans le tableau??? enfin, y a des trucs louches qui tourne la
dessous... (faut pas etre programmeur chez microsoft pour écrire des
trucs louches :-p )

Cordialement

Nicolas


Avatar
pjvouette
"FoodByFood" a écrit dans le message news:

J'ai un formulaire avec qq lignes (nombre de lignes en fonction de ce
qui a été encodé dans la base de données).
Chaque ligne comprend 2 zone de texte, 1 select box, 2 check box.
Le probleme est le suivant, lors de la récupération dans un tableau,
les zones de texte et les select box ont le meme indice, par contre
les check box ont l'air de perdre le nord!!! (a chaque fois elles se
retrouvent dans les 10 premieres lignes, meme si je n'ai que la 50eme
de cochée!!!)

echo"<td><center><input type=checkbox
nameÊrtspec[]".($l[4]=='on'?" checked":"")."></td>";
echo"<td><center><input type=checkbox nameÊrtsug[]".($l[3]=='on'?"
checked":"")."></td>";


Le problème est dans le nom de tes check box :
Comme les checkbox non modifiés/cochés (je ne sais plus) seule une partie
d'entre eux renverra un élément de tableau doté automatiquement d'un numéro
d'indice différent de celui que tu attends.

Remplace par name='cartspec[4]' ou name='cartsud[3]', où même
name='cartspec[toto]' (ne pas oublier les guillemets).

pierre-jean