chekbox dynamiques

chekbox dynamiques - PHP - Programmation

Marsh Posté le 08-12-2004 à 16:46:21    

Bonjour à tous,
 
je fais actuellement une appli en php mysql.
je dois créer une liste dynamique générée par un requete sql
en gros :
une categorie dispose de plusieurs rubriques (id_rubrique et libelle)
j'affiche un tableau dans lequel je place un checkbox devant chaque id_rubrique et son libelle.
postulat de départ, je ne connais pas à l'avance le nombre de rubriques comprise dans la catégorie sélectionnée par l'utilisateur.
je souhaiterai savoir comment pouvoir nommer dynamiquement chaque checkbox afin de pouvoir vérifier après un "post" le ou lesquels sont "checked" pour retourner les id_rubriques et leurs libelle
-- je ne sais pas si je suis clair ????
Merci de votre aide

Reply

Marsh Posté le 08-12-2004 à 16:46:21   

Reply

Marsh Posté le 08-12-2004 à 17:23:58    

<input name=$id_rubrique>

Reply

Marsh Posté le 08-12-2004 à 18:17:44    

si je considère ta réponse j'aurai :
<input name="<? echo $id_rubrique;?>" value="<? echo $id_rubrique;?>" type="checkbox">.
Sachant que je peux en avoir une bonne dizaine, comment puis-je à l'aide d'un echo, par exemple, afficher les checkbox cochées (pour lesquelles on aurait un truc du genre $id_rubrique=$id_rubrique !)
Mon prob c'est que je ne récupère rien : aucune valeur $id_rubrique

Reply

Marsh Posté le 08-12-2004 à 18:52:29    

Code :
  1. while ($rub = mysql_fetch_assoc($res)) {
  2.    ...
  3.    echo '<input type="checkbox" name="id_rubrique[]" value="'.$rub['id_rubrique'].'" />';
  4.    ...
  5. }


 
Ensuite tu récupères le tableau $_POST['id_rubrique'] qui contient la liste des id.


Message édité par sielfried le 08-12-2004 à 18:53:20

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 09-12-2004 à 14:58:17    

Merci de ta réponse Sielfried, cependant au vu de mon niveau, il me reste quelques cailloux dans ma chaussure :
problème au niveau du nom (name="id_rubrique[]" )
2 pb, lorsque je poste je ne peux lire mon tableaux et encore moins sont contenu
3 pb, je n'ai pas moyen de vérifier si checkbox is checked !
En fait je vois bien le truc : stocker dans un tableau les id_rubriques mais hic ! je sèche !

Reply

Marsh Posté le 09-12-2004 à 15:15:22    

on va me jeter des pierres, mais comme je connaissais pas le coup du <input name="nomchk[]" /> (je parle des []), ben j'ai utilisé javascript. Quand je clique sur la case, le concatène dans un input hidden les valeurs des cases à cocher en tant que chaîne de caractères, séparées par un caractère (dépend des valeurs, la , ou le #). Après, côté php, je fais un explode()...

Reply

Marsh Posté le 09-12-2004 à 15:19:11    

Le javascript c'est pas fiable

Reply

Marsh Posté le 09-12-2004 à 15:22:16    

là, je t'avoue que je suis largué, n'existe-il pas un moyen plus léger pour traiter ce genre de cas, car même en solutionant simplement le truc dans la première page au moment du "post" j'ai que dalle sur la page qui reçoit.
J'ai eu un cas similaire mais les checkbox portaient toutes un nom différent, donc à l'aide d'un simple if(macheck==mavaleur)... et tout baignait, mais là ! c'est hard je pédale grave !! je ne vois pas de solution !

Reply

Marsh Posté le 09-12-2004 à 16:05:22    

UZUL33 a écrit :

Merci de ta réponse Sielfried, cependant au vu de mon niveau, il me reste quelques cailloux dans ma chaussure :
problème au niveau du nom (name="id_rubrique[]" )
2 pb, lorsque je poste je ne peux lire mon tableaux et encore moins sont contenu


 
C'est-à-dire ? $_POST['id_rubrique'] ne contient rien ?
 
Ton formulaire est bien passé en post ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 09-12-2004 à 16:12:30    

rien !
je fais un test sur la page "réponse" :
if($id_rubrique==$id_rubrique){ echo $id_rubrique; echo "full";}else{echo "empty";} ---> il m'affiche "full" !
 
dans la page appelante j'ai bien un while($truc=mysql_fetch_array($machin) ....  
<input name="<? echo $id_rubrique;?>" value="<? echo $id_rubrique;?>" type="checkbox">
donc je peux bien tester si $id_rubrique(unique)==$id_rubrique(checkée) mais j'ai queud !

Reply

Marsh Posté le 09-12-2004 à 16:12:30   

Reply

Marsh Posté le 09-12-2004 à 16:56:21    

<input name="id_rubrique[]>" value="<? echo $id_rubrique;?>" type="checkbox">  
 
Ensuite :
 
foreach( $_POST['id_rubrique'] as $rub )
{
   echo( "Id = $rub<br>" );
}


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 09-12-2004 à 17:05:08    

le name="id_rubrique[]" ou name="<? id_rubrique[];?>" ou encore name="<? echo id_rubrique[];?>" génère un fatal error !!!

Reply

Marsh Posté le 09-12-2004 à 17:15:09    

UZUL33 a écrit :

le name="id_rubrique[]" ou name="<? id_rubrique[];?>" ou encore name="<? echo id_rubrique[];?>" génère un fatal error !!!


 
Pour name="<? id_rubrique[];?>" ou encore name="<? echo id_rubrique[];?>", je veux bien, c'est du n'importe quoi !
 
Mais name="id_rubrique[]", c'est bon, sauf si tu as codé ça n'importe où ce qui ne m'étonerais pas :/
 
Montre voir un peu ton code. La boucle while sur mysql_fetch_array par exemple...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 09-12-2004 à 17:21:15    

j'aime bien le ton qu tu emploi ...
--  
while($lIDRUB=mysql_fetch_array($rsIDRUB))
{  $id_rubrique=$lIDRUB['id_rubrique']; ?>
<tr>
<td><input name="rubrique[]" value="<? echo $id_rubrique;?>" type="checkbox"></td>
</tr><?
} mysql_free_result($rsIDRUB);?>
--
pour la page appelée :
---
$rktIDRUB="SELECT * FROM `rubrique` WHERE `id_categorie`='".$id_categorie."' ORDER BY `id_rubrique` ASC";
$rsIDRUB=mysql_query($rktIDRUB) or ...
while($lIDRUB=mysql_fetch_array($rsIDRUB))
{ // juste un test
 if($rubrique[id_rubrique]==$id_rubrique){ echo $rubrique[id_rubrique]; echo "full";}else{echo "empty";}
}
 --> resultat après ces modifs pas de fatal error mais n fois le mot full cra test = true ! mais pas de value !!

Reply

Marsh Posté le 09-12-2004 à 17:31:55    

malheureusement avec la syntaxe de la page appelante decrit plus haut, sur la page appelée j'ai de tout manière avec quelque manière que le code soit écrit "FULL" donc mes paramètres ne quittent même pas ma page appelante, enfin c'est l'impression que ca me donne ?!

Reply

Marsh Posté le 09-12-2004 à 17:37:46    

Ok, après grand nettoyage, une nouvelle tasse de café : c'est cool ca return bien les id_rubriques !!
Je vous remercie de votre aide j'ai pu résumer le code en trois lignes !
--  
à charge de revanche, messieurs scarf3ss3, Sielfried, rufo, esox_ch et Mara's dad (cette fois avec les yeux en face des trous !)

Reply

Marsh Posté le 09-12-2004 à 18:25:20    

UZUL33 a écrit :

j'aime bien le ton qu tu emploi ...


Ben quand on lit ca

Citation :

<? id_rubrique[];?>


On se demande si celui qui a osé essayé sait ce qu'il fait tu ne crois pas ? :o
 
M'enfin, ça marche et t'as compris, c'est le principal :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed