Checkbox et Update

Petit nouveau ! | 5 Messages

16 juil. 2008, 14:13

Bonjour, ;)

J'aurais besoin d'aide pour connaître la méthode qui permet dans un formulaire de pouvoir cocher plusieurs checkbox et de faire un update de l'ensemble des valeurs associées à celles-ci.

Voilà pour l'instant où j'en suis :

mon formulaire :

Code : HTML

Code : Tout sélectionner

<form method="post" name="form1" action="tstocktech.php"> <?php do { ?> <input name="check_stocko" type="checkbox" value="<?php echo $row_rsstocko2['id_stocko']; ?>" /> <input type="text" name="numbl_stocko" value="<?php echo $row_rsstocko2['numbl_stocko']; ?>" size="5" readonly="readonly"> <input size="8" type="texte" name="dateliv_stocko" value="<?php list($year, $month, $day) = explode("-", $row_rsstocko2['dateliv_stocko']); echo $row_rsstocko2['dateliv_stocko'] = "$day-$month-$year";?>" readonly="readonly"/> <input type="text" name="denom_stocko" value="<?php echo $row_rsstocko2['denom_stocko']; ?>" size="15" readonly="readonly"> <input type="text" name="numlot_stocko" value="<?php echo $row_rsstocko2['numlot_stocko']; ?>" size="15" readonly="readonly"> <input type="text" name="numbout_stocko" value="<?php echo $row_rsstocko2['numbout_stocko'];?>" size="15" readonly="readonly"> <?php } while ($row_rsstocko2 = mysql_fetch_assoc($rsstocko2)); ?> <select name="listetech"><?php do { ?><option value="<?php echo $row_ttechnicien['id_use']?>"> <?php echo $row_ttechnicien['nom_use']?> </option> <?php } while ($row_ttechnicien = mysql_fetch_assoc($ttechnicien)); $rows = mysql_num_rows($ttechnicien); if($rows > 0) { mysql_data_seek($ttechnicien, 0); $row_ttechnicien = mysql_fetch_assoc($ttechnicien); } ?> </select> <input type="submit" value="Valider"> <input type="hidden" name="id_stocko" value=""> </form>
et le script d'Update associé :

Code : PHP
$check=$_POST['check_stocko'];
  $liste=$_POST['listetech'];
  $datesortie=$_POST['datesortie_stocko'];
  $etat='2';
  $dispo='1';

$req1 = "UPDATE tstockoxy SET etat_stocko='$etat', dispo_stocko='$dispo', datesortie_stocko='$datesortie', numtec_stocko='$liste' WHERE id_stocko='$check'";
  mysql_query($req1) or die(mysql_error()) ;
Une petite idée ? MERCI :)

Mammouth du PHP | 1353 Messages

16 juil. 2008, 14:20

Une simple recherche dans les forums avec le mot "checkbox" t aurait permis de résoudre ton problème...

Exemples :

http://www.phpfrance.com/forums/voir_sujet-31729.php
http://www.phpfrance.com/forums/voir_sujet-34212.php
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Petit nouveau ! | 5 Messages

16 juil. 2008, 14:32

Merci ;)

mais il y a une différence entre les exemples donnés dans les liens que j'ai consulté et ma situation. Dans les exemples on connait les valeurs de chaque checkbox :
<?php
$infos=array();
$infos[0]=$a['nom'];
$infos[1]=$a['prenom'];
$infos[2]=$a['ville'];
$infos[3]=$a['mail'];
$infoValue = implode('#-#',$infos);
// ou $infoValue = serialize($infos);
?>                     
alors que dans mon cas elles sont récupérées depuis la base de données. Et là je ne vois pas comment adapter le code :oops:

Un petit coup de pouce ?

Merci :)

Mammouth du PHP | 1353 Messages

16 juil. 2008, 15:51

Tu devrais utiliser les while() {} plutot que les do {}while() avec les mysql_fetch_assoc() parce que sinon tu auras des erreurs je pense.

A part ca pour ton probleme tu n'es pas obligé de donner une valeur :
<input type="checkbox" name="check_exemple[]" value="<?php echo $row_exemple['exemple'];?>"/><?php echo $row_exemple['exemple'];?><br/>
Et après quand tu récupères ton $_POST["check_exemple"] tu peux faire un implode pour avoir une chaine à insérer dans ta base.

Mais il faudrait un peu plus de détails, c'est quelle valeur pour laquelle tu veux plusieurs checkbox ? quand la recuperes tu en base ? Comment veux tu la stocker en base ?
Tell me and I forget. Teach me and I remember. Involve me and I learn.