FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » [RESOLU] Récupération des valeurs d' une checkbox
 

[RESOLU] Récupération des valeurs d' une checkbox

Il y a 426 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [RESOLU] Récupération des valeurs d' une checkbox
 
Plus d'informations

Bonjour à tous.
J'ai essayé de trouver une réponse avant de venir vous embêter mais en vain...
J'ai lu quelque part sur ce forum que les valeurs sélectionnées via une checkbox étaient récupérées dans un tableau.
Et effectivement hier encore c'était le cas. Aujourd'hui je ne récupère au mieux que la première valeur de ce tableau et le plus beau c'est que la variable en question (censée être un tableau) passe outre mon test avec is_array(var)...
_______________________________________________________________________________________________
MA CHECKBOX (alimentée grace à une base de données):

Code :
  1. <FORM method="POST" action="./edition/editer_table.php">
  2.                 <?php
  3.                 $query = "SHOW TABLES";
  4.                 $result = mysql_query($query) or die("Query failed" );
  5.                 while ($line = mysql_fetch_assoc($result)) {
  6.                     foreach ($line as $col_value) {
  7.                         echo "<INPUT type='checkbox' name='tables_presentes'
  8.                                                            onclick='boutonAppears(\"bouton_OK\" );' // code js pour
  9.                                                                                                          //rendre le bouton_OK utilisable
  10.                                                            value='$col_value'>$col_value</OPTION><BR>";
  11.                     }
  12.                 }
  13.                 ?>
  14.             <SELECT id="tables" name="action">
  15.                 <OPTION value='supprimer'>Supprimer la sélection</OPTION>
  16.                 <OPTION value='modifier'>Modifier la sélection</OPTION>
  17.             </SELECT>
  18.             <INPUT id="bouton_OK" disabled="true" type="submit" value="Ok">
  19.             </FORM>


_______________________________________________________________________________________________
_______________________________________________________________________________________________
ET MA PAGE OU JE RECUPERE LES VALEURS SELECTIONNEES (editer_table.php) :

Code :
  1. $table=$_POST["tables_presentes"];
  2. $action=$_POST["action"];
  3. switch ($action) {
  4.     case "supprimer":{
  5.         $query= "DROP TABLE `".$table."`";
  6.         if(is_array($table)){
  7.                         // le programme ne va jamais jusqu'ici!!
  8.             for ($i=1; isset($table[$i]); $i++){
  9.                 echo $table[$i];
  10.                 $query.=", `".$table[$i]."`";
  11.             }
  12.         }
  13.         echo $query;// affichage de la requête
  14.         $result = mysql_query($query) or die("Query failed" );// envoie de la requete à mysql
  15.         break;
  16.         }
  17.     case "modifier":{
  18.                 // il n'y a rien ici c'est normal je le programmerai plus tard, il faut que le cas "supprimer" fonctionne...
  19.         break;
  20.         }
  21. }


_______________________________________________________________________________________________
 
Je le reprécise, hier encore ça marchait parfaitement... j'ai fait des changements depuis (j'ai ajouté du javascript pour faire apparaitre un bouton) mais rien ne qui concerne la récupération des valeurs sélectionnées par checkbox.
 
Je vous remercie par avance!


Message édité par kamerleon le 15-06-2007 à 11:40:41
Plus d'informations

Encore une chose pour préciser : le problème vient du seul fait que ma variable "$table" qui récupère les données d'un $_POST n'est PAS UN TABLEAU alors que je lis partout que c'en est un quand plusieurs valeurs doivent être récupérées...
voilà j'ai ré-écris mon sujet j'espère qu'il convient maintenant.
J'espère que vous saurez éclairer ma lanterne.

G.M.G.V.S.O.
Plus d'informations

Si ils ont tous le meme name c'est mort :o


---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

a écrit :

Si ils ont tous le meme name c'est mort :o


+1 :jap:
 
La valeur de name sert de clé à ton tableau de récupération des checkbox. SI tous les names sont identiques, tu n'auras qu'une clé (1 seule ligne dans ton tableau), et toutes les valeurs récupérées par $_POST seront écrasées sauf la dernière...


---------------
.: La Pipicy Team :love: :.
Plus d'informations

Effectivement cela explique beaucoup de chose. Mais ça ne me dit pas comment ça se fait que ça marchait avant, alors que j'avais laissé les mêmes noms pour tous.
En tout cas merci bien je considère mon problème comme résolu puisque vous m'en avez donné la cause. Faut-il que je contacte qu'elqu'un pour signaler ce problème comme résolu?

Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Fais déjà des tests pour contrôler que ça vient bien de là.
 
Ensuite, tu peux éditer ton premier message (2e icône en partant de la gauche au-dessus de ton message) et tu change le titre en mettant [résolu]. C'est cool ce forum, tu peux tout faire tout seul :D


---------------
.: La Pipicy Team :love: :.
Plus d'informations

Dans mon cas, j'étais contraint de mettre le même "name" à toutes les checkbox.
Pour gérer cela, il suffit de déclarer la checkbox comme suit (sans oublier les crochets):

Code :
  1. echo"<INPUT type='checkbox' name='nom_checkbox[]' value='$valeur'>$valeur"

Et de récupérer les valeurs sélectionnées en faisant :

Code :
  1. $valeurs_selectionnees = $_POST['nom_checkbox'];// "$valeurs_selectionnees" sera dans TOUS les cas un tableau

Si vous voulez afficher le tout :

Code :
  1. if(isset($valeurs_selectionnees)){// il y a au moins une valeur sélectionnée
  2.     $afficher= "`".$valeurs_selectionnees[0]."`<BR>";
  3.     for ($i=1; isset($valeurs_selectionnees[$i]); $i++){// On teste si plusieurs valeurs sont sélectionnées
  4.           $query .= "`".$valeurs_selectionnees[$i]."`<BR>";
  5.     }
  6.     echo $query;// On affiche le tout
  7. }else {// Aucune valeur n'a été sélectionnée
  8.         echo "Veulliez sélectionner une valeur!<BR>";// On en avertit l'utilisateur
  9. }

J'espère ne rien avoir oublié.
Encore merci à vous!


Message édité par kamerleon le 15-06-2007 à 15:43:23
zeb
Plus d'informations

(Merci à toi, kamerleon. Malgré un début difficile, aujourd'hui tu es un exemple : [Résolu] dans le titre, publication de ta solution, état d'esprit excellent. :jap: )


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Merci pour la solution. En plus je sens que je vais pas tarder à m'en servir :D


---------------
.: La Pipicy Team :love: :.

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » [RESOLU] Récupération des valeurs d' une checkbox
 

Annonces Google
Publicité