Traitement des données d'un formulaire (checkbox) en PHP

Traitement des données d'un formulaire (checkbox) en PHP - PHP - Programmation

Marsh Posté le 17-06-2005 à 11:01:01    

Bonjour,  
J'ai un formulaire contenant une liste d'éléments remplis grâce à ma base de données. Mon soucis est que je n'arrive pas à récuperer les elements sélectionnés. En retour, je n'ai que le dernier élément coché et non la liste de tous les elements.
 
Voici mon code :
 
Le formulaire :

Code :
  1. <form action="?a=affectAdmin-r&amp;idModule='.$idM.'" method ="post">';
  2.  $query = "SELECT idUtil, loginUtil FROM utilisateur";
  3.  $result = mysql_query($query);
  4.  while ($row = mysql_fetch_row($result)){
  5.   $idU = $row[0];
  6.   $loginU = $row[1];
  7.   echo '<INPUT type="checkbox" name="choixAdmin[]" value="'.$idU.'">'.$loginU.'<br />';
  8.  }
  9.  echo '<input type="submit" name="valider" value="Affecter le(s) administrateur(s)">
  10.  </form>';


 
La récupération :  

Code :
  1. $idM = trim($_GET['idModule']);
  2. $admin = trim($_POST['choixAdmin']);
  3. for ($i=0;$i<sizeof($admin);$i++) {
  4.  if (isset($admin[$i])) {
  5.   echo("$admin[$i] - " );
  6.  }
  7. }


 
Voila, merci par avance :jap:

Reply

Marsh Posté le 17-06-2005 à 11:01:01   

Reply

Marsh Posté le 17-06-2005 à 11:09:06    

Je voulais rajouter cette element dans le topic des astuces.
En faite voici en gros ce qu'il faut faire.
Exemple.

Code :
  1. //Voici un générateur de chekbox dont les données viennent d'une db. Il liste des utilisateurs.
  2. for($i=0;$i<count($arrUser);$i++){
  3.   echo '<input type="checkbox" name="check_'.$i.'" value="1"><br/>';
  4.   echo '<input type="hidden" name="iduser'.$i.'" value="'.$arrUser[$i]['iduser'].'"><br/>';
  5. }
  6. echo '<input type="hidden" name="nbelement" value="10">';
  7. //Apres le post voici comment récupérer les informations selectionné.
  8. for($i=0;$i<$_POST['nbelement'];$i++){
  9.   if($_POST['check_'.$i] == "1" ){
  10.     echo $_POST['iduser'.$i]; //Affiche les user selectionnée.
  11.   }
  12. }


 
Voici en gros comment faire pour récupérer des informations issu d'une liste de checkbox.


Message édité par Berceker United le 17-06-2005 à 12:17:45
Reply

Marsh Posté le 17-06-2005 à 11:17:34    

Je suis désolée mais je ne comprend pas tres bien ton code.
Qu'est ce que la variable $arrUser?
 
J'ai ajouté ces bouts de code et j'ai une jolie erreur : Parse error: parse error, expecting `','' or `';'' in /var/www/html/Intranet/admin/utilisateurs.php on line 108, la ligne 108 correspond à la ligne 4 de ton code, voila!!
Désolée mais je ne suis pas tres douée, je comprend vite mais il faut m'expliquer longtemps ;)

Reply

Marsh Posté le 17-06-2005 à 12:20:22    

J'ai fais une erreur sur la variable j'ai oublié de mettre un dollars (je suis en train de faire de l'asp en ce moment c'est pour cela).
 
En faite je t'ais donné un exemple. Mais regarde la différence avec ton code tu verras que t'y retrouvera.
il suffit plus ou moin de  changer le nom des variable et de  placer le for par le while venant du  resultat de ta requete.

Reply

Marsh Posté le 17-06-2005 à 14:07:18    

En fait, je suis vraiment désolée mais je ne m'en sors vraiemnt pas :s  
 
Voici mon code :  

Code :
  1. <form action="?a=affectAdmin-r&amp;idModule='.$idM.'" method ="post">';
  2.  $query = "SELECT idUtil, loginUtil FROM utilisateur";
  3.  $result = mysql_query($query);
  4.  while ($row = mysql_fetch_row($result)){
  5.   $idU = $row[0];
  6.   $loginU = $row[1];
  7.   //echo '<INPUT type="checkbox" name="choixAdmin[]" value="'.$idU.'">'.$loginU.'<br />';
  8.   for($i=0;$i<count($arrUser);$i++){
  9.    echo '<input type="checkbox" name="check_'.$i.'" value="1"><br/>';
  10.    echo '<input type="hidden" name="'.$idU.$i.'" value="'.arrUser[$i]['iduser'].'"><br />';
  11.   }
  12.   echo '<input type="hidden" name="nbelement" value="10">';
  13.  }
  14.  echo '<input type="submit" name="valider" value="Affecter le(s) administrateur(s)">
  15.  </form>';


 

Code :
  1. $idM = trim($_GET['idModule']);
  2.  for($i=0;$i<$_POST['nbelement'];$i++){
  3.     if($_POST['check_'.$i] == "1" ){
  4.       echo $_POST['idU'.$i]; //Affiche les user selectionnée.  
  5.     }
  6.  }

Reply

Sujets relatifs:

Leave a Replay

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