Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1488 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupération de valeurs checkbox dynamiquement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupération de valeurs checkbox dynamiquement

n°1112973
Jeetiz
Posté le 08-06-2005 à 17:24:23  profilanswer
 

Bonjour j'ai un petit soucis pour récupérer des valeurs de mes checkbox, j'ai vu cette astuce sur le net, mais ça ne semble pas marcher avec EasyPHP 1.8.
 
voici le code:
 
 
 
 
/* Pour chaque enregistrement dans la base de données
Je crée une case à cocher, le nom étant stocké dans un tableau, et la valeur = à l'ID de mon enregistrement */
 
$sql_select = "SELECT * FROM rechercher";
$req_select = mysql_query($sql_select) or die(mysql_error());
 
while($data = mysql_fetch_assoc($req_select))  
  {
  $question = $data['question'];
  $id  = $data['id'];  
  echo '<br><input type="checkbox" name="checkbox[]" value="'.$id.'"> ';
  echo $id.' . '.$question.'<br>';
  }

 
Dans la page suivante, qui récupère les valeurs:
/*Pour chaque case qui a été cochée
Je récupère la valeur $id
Je cherche l'enregistrement correspondant dans la BDD
Je récupère la question et réponse que j'affiche dans une TEXTAREA */
 
 
for ($i = 0; $i < count($checkbox); $i++)
    {
$id  = $checkbox[$i];
$sql_req  = "SELECT * FROM rechercher WHERE id ='$id'";
$req_req  = mysql_query($sql_req) or die(mysql_error());  
$question = mysql_result($req_req , 0 , "question" );
echo "Question $id<br>";  
echo '<textarea name="upd_question" cols="80" rows="3">'.$question.'</textarea>';  
   
$sql_req2  = "SELECT * FROM rechercher WHERE id ='$id'";
$req_req2  = mysql_query($sql_req2) or die(mysql_error());  
$reponse = mysql_result($req_req2 , 0 , "reponse" );  
echo "Réponse $id<br>";
echo '<textarea name="upd_reponse" cols="80" rows="8">'.$reponse.'</textarea>';
}

 
Mais voila, il me dit:

Notice: Undefined variable: checkbox in ...
Notice: Undefined index: in...
Sur la même ligne, l'erreur n'apparaissait pas avec la version 1.6 il me semble.
 
Donc si vous avez une idée ou carrement une solution plus simple permettant de récupérer les valeurs de ces cases à cocher le but est que l'utilisateur choisisse une question/réponse à modifier, que les questions/réponse séléctionnées soit affichés dans une TEXTAREA par rapport à la BDD, qu'il modifie ce qu'il souhaite et qu'il mette à jour l'enregistrement.  
 
Voila merci d'avance

mood
Publicité
Posté le 08-06-2005 à 17:24:23  profilanswer
 

n°1113023
cesarr89
Posté le 08-06-2005 à 17:51:18  profilanswer
 

Ton $checkbox il sort d'où dans le 2eme morceau de code?
Si c'est du POST alors tu dois récup la valeur avant de la traiter, au lieu de $checkbox mets $_POST['checkbox'].....enfin regarde les tutos sur le net.


---------------
!== Force et honneur ==!
n°1113521
plainsofpa​in
Pingouino's lover
Posté le 09-06-2005 à 07:19:46  profilanswer
 

et puis entre balise code, c'est plus sympa a lire du code ^^'


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1113615
benamoubea​ch
tivuplai
Posté le 09-06-2005 à 10:10:51  profilanswer
 

for c moyen
 
fait plutot :
 
foreach($_POST['checkbox'] as $key => $value)
{
echo $key.' => '.$value.'<br/>';
}
 
Si ca marche pas , c peut etre que le mot checkbox est réservé

n°1117199
Profil sup​primé
Posté le 12-06-2005 à 14:42:39  answer
 

Salut,
dans les versions de EasyPHP supérieures à 1.6.0.0 on ne peut plus faire ce genre de manipulations :

Code :
  1. <? if($var=="valeur" ) echo $var; ?>

il faut avant vérifier que la variable en question existe :

Code :
  1. <? if(isset($var)) if($var=="valeur" ) echo $var; ?>

Enfin c'est ce que j'ai cru avoir compris. Toujours est-il que c'est bien chiant.
Ton problème Jeetiz est à mon avis ici :

Code :
  1. for ($i = 0; $i <count($checkbox); $i++)

$checkbox n'a pas été définie. Tu devrais faire comme cela :

Code :
  1. <? $checkbox=$_POST['checkbox'];
  2. for ($i = 0; $i < count($checkbox); $i++) ?>


et au passage, renomme ton input :

Code :
  1. <? echo '<br><input type="checkbox" name="checkbox" value="'.$id.'">'; ?>


Pour le reste j'ai pas trop regardé.
 
Bonne chance
 
 :hello:

n°1117276
Profil sup​primé
Posté le 12-06-2005 à 16:20:16  answer
 

Jeetiz a écrit :


Code :
  1. for ($i = 0; $i < count($checkbox); $i++)
  2.     {
  3. $id  = $checkbox[$i];
  4. $sql_req  = "SELECT * FROM rechercher WHERE id ='$id'";
  5. $req_req  = mysql_query($sql_req) or die(mysql_error());
  6. $question = mysql_result($req_req , 0 , "question" );
  7. echo "Question $id<br>";
  8. echo '<textarea name="upd_question" cols="80" rows="3">'.$question.'</textarea>';
  9.  
  10. $sql_req2  = "SELECT * FROM rechercher WHERE id ='$id'";
  11. $req_req2  = mysql_query($sql_req2) or die(mysql_error());
  12. $reponse = mysql_result($req_req2 , 0 , "reponse" );
  13. echo "Réponse $id<br>";
  14. echo '<textarea name="upd_reponse" cols="80" rows="8">'.$reponse.'</textarea>';
  15. }



beaucoup trop laid et lent ton code !
- tu effectues deux requete dans ton for alors que t'en a besoin d'une seule
-"select *" est à eviter
-tu effectue autant de requete qu'il y a de case à cocher alors que tu peux afficher la meme chose avec UNE SEULE requete


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupération de valeurs checkbox dynamiquement

 

Sujets relatifs
[Résolu] recuperation valeur menu déroulantFaire la somme des valeurs d'un champ
griser une checkbox sous excelRécupération des données EXIF d'une image JPEG
Requête avec soustraction ou addition avec des valeurs max en MySQLChanger dynamiquement des propriétés d'une classe CSS
Checkbox + validation du formulaire (ASP/SQLServer)[Edit] Forcer Oracle à retourner une ligne avec des 0
[résolu] appeller une nouvelle page dynamiquementrecuperation nom d'utilisateur a partir d'une session windows
Plus de sujets relatifs à : Récupération de valeurs checkbox dynamiquement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR