A voir également:
- [PHP/MySQL] Modif et suppr des données
- Fuite données maif - Guide
- Suivi des modifications word - Guide
- Trier des données excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Sauvegarde des données - Guide
7 réponses
Bonjour,
Dans ton tableau, tu utilises beaucoup de champs qui ont le même nom...
Par exemple :
<input name='nom_tache'
"nom_tache" va être attribué à autant de champ texte qu'il y a de lignes dans ton tableau ! Alors du coup, quand tu valides, tu ne peux pas savoir quel "nom_tache" va être utilisé pour la modification.
La solution serait d'appeler ces différents champs "nom_tache".$liste['idtache']
Ainsi, ils auront tous un nom différent.
Je te laisse adapter la suite du script pour la modification.
Xavier
Dans ton tableau, tu utilises beaucoup de champs qui ont le même nom...
Par exemple :
<input name='nom_tache'
"nom_tache" va être attribué à autant de champ texte qu'il y a de lignes dans ton tableau ! Alors du coup, quand tu valides, tu ne peux pas savoir quel "nom_tache" va être utilisé pour la modification.
La solution serait d'appeler ces différents champs "nom_tache".$liste['idtache']
Ainsi, ils auront tous un nom différent.
Je te laisse adapter la suite du script pour la modification.
Xavier
bonjour,
j'ai du réadapté le code et j'en ai profité pour changer les noms des champs etc, mais j'ai toujours ce problème...
la suppression fonctionne très bien je peux selectionner plusieurs checkbox et les supprimer en même tps...
mais lorsque je veux modifier je ne peux le faire qu'a la dernière ligne de mon tableau, c'est ça que je pige pas lol...par contre si je modifie la dernière ligne du tableau et qu'ensuite je souhaite modifier une autre ligne, cette ligne prendra les valeurs modifées de la dernière ligne d emon tableau...
voila donc il doit y avoir quelque chose que je ne vois pas...mercid e votre aide
j'ai du réadapté le code et j'en ai profité pour changer les noms des champs etc, mais j'ai toujours ce problème...
la suppression fonctionne très bien je peux selectionner plusieurs checkbox et les supprimer en même tps...
mais lorsque je veux modifier je ne peux le faire qu'a la dernière ligne de mon tableau, c'est ça que je pige pas lol...par contre si je modifie la dernière ligne du tableau et qu'ensuite je souhaite modifier une autre ligne, cette ligne prendra les valeurs modifées de la dernière ligne d emon tableau...
voila donc il doit y avoir quelque chose que je ne vois pas...mercid e votre aide
Tu pourrais nous fournir le code généré ? (C'est à dire que dans ton navigateur, tu fais "afficher la source" et tu copies-colles le formulaire).
C'est souvent le meilleur moyen de comprendre ce qui ne va pas :)
C'est souvent le meilleur moyen de comprendre ce qui ne va pas :)
pas de souci ^^ le voici le voila :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <meta name="description" content="Listes dynamiques liées: la seconde liste est modifiée instantanément lors d'une sélection sur la première." /> <meta name="keywords" content="menu,déroulant,select,liées,JavaScript" /> <meta name="author" content="Cyrano" /> <meta name="generator" content="Zend Studio Environnement et WebExpert 5" /> <meta http-equiv="imagetoolbar" content="no" /> <meta http-equiv="Pragma" content="no-cache" /> <script type="text/javascript" src="./arrayPHP2JSB.js" charset="iso_8859-1"></script> <script type="text/javascript" src="./changeTache.js" charset="iso_8859-1"></script> <script type="text/javascript"> /* <![CDATA[ */ <!-- /* * Ici, on transmets la chaîne sérialisée à JavaScript * pour la transformer en tableau indexé JavaScript */ var tableau = new PhpArray2Js('a:2:{i:2;a:3:{i:0;s:6:"RESEAU";i:1;a:3:{i:0;s:1:"8";i:1;s:1:"5";i:2;s:1:"6";}i:2;a:3:{i:0;s:4:"test";i:1;s:6:"cables";i:2;s:12:"informatique";}}i:3;a:3:{i:0;s:11:"FONDATATION";i:1;a:2:{i:0;s:1:"1";i:1;s:1:"2";}i:2;a:2:{i:0;s:12:"semele fines";i:1;s:15:"semelle lourdes";}}}'); var tab = tableau.retour(); // --> /* ]]> */ </script> <link rel="stylesheet" type="text/css" href="../../menu.css"/> <script type="text/javascript"> <!-- window.onload=montre; function montre(id) { var d = document.getElementById(id); for (var i = 1; i<=10; i++) { if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} } if (d) {d.style.display='block';} } //--> </script> </head> <body> <div id="menu"> <dl> <dt onmouseover="javascript:montre();"><a href="../../index.php" title="Retour à l'accueil">Accueil</a></dt> </dl> <dl> <dt onmouseover="javascript:montre('smenu1');">Chantier</dt> <dd id="smenu1"> <ul> <li><a href="../chantier/add_chantier.php">Créer Chantier</a></li> <li><a href="../chantier/consult_chantier.php">Consulter Chantier</a></li> </ul> </dd> </dl> <dl> <dt onmouseover="javascript:montre('smenu2');">Gestion</dt> <dd id="smenu2"> <ul> <li><a href="../personnel.php">Personnel</a></li> <li><a href="../type_tache.php">Type de tâche</a></li> <li><a href="../unite.php">Unités</a></li> <li><a href="../tu_bib.php">Temps Unitaires Bibles</a></li> <li><a href="../taches.php">Tâches</a></li> </ul> </dd> </dl> <dl> <dt onmouseover="javascript:montre('smenu3');">Budget d'heures</dt> <dd id="smenu3"> <ul> <li><a href="choix_chantier.php"> Création Budget</a></li> </ul> </dd> </dl> </div> <br><br><br><br><br>N° chantier : <input name='num' type='text' value='6000'><br>Nom du Chantier : <input name='nom' type='text' value='meylan'><br>Batiment: <input name='bat' type='text' value='batiment B'><br>Niveau : <input name='niv' type='text' value='niv1B'><br><br><u><b>Création de budget d'heures pour ce chantier</b></u><br> <form action="" method="POST"> <table> <tr> <td><b>Nom Tâche</b></td> <td><b>Quantité</b></td> <td><b>Aleas</b></td> </tr> <tr> <select name="type_tache" id="type_tache" onchange="changeTache(tab,this.value);"> <option value="vide">- - - Choisissez un type de tache - - -</option> <option value="2">RESEAU</option> <option value="3">FONDATATION</option> </select><br /><br /></td> <!-- ICI, le secret : on met un bloc avec un id ou va s'insérer le code de la seconde liste déroulande --> <td><span id="blocTache"></span><br /></td> <td><input name='qte' type='text' /></td> <td><input name='aleas' type='text' /></td> <td><input type='submit' value='Ajouter' /></td> <input type="hidden" name="idchantier" value="32" /> </tr> </table> </form> <br /><br /> <u><b>Liste des tâches par type</b></u><br /><br /> <form action="" method="POST"> <b>INSTALLATION</b><br><br><table border=1><tr><td></td><td><b>Nom Tâche</b></td><td><b>Quantité</b></td><td><b>Unité</b></td><td><b>TU Bible</b></td><td><b>Aleas</b></td><td><b>TU</b></td><td><b>Heures théoriques</b></td><td><b>Heures effectives</b></td></tr><br><TR><TD><br></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td><u><b>Total heures : </u></td><td><b></B></td><td><b></tr></table><br><br><b>RESEAU</b><br><br><table border=1><tr><td></td><td><b>Nom Tâche</b></td><td><b>Quantité</b></td><td><b>Unité</b></td><td><b>TU Bible</b></td><td><b>Aleas</b></td><td><b>TU</b></td><td><b>Heures théoriques</b></td><td><b>Heures effectives</b></td></tr><tr><td><input name='com' id='com' type='text' value=''></td><td>test</td><td><input name='qte1' type='text' value ='2'></td></td><td>m3</td><td>9.5</td><td><input name='aleas1' type='text' value='4'></td><td>38</td><td>76</td><td><input name='heure_eff' id='heure_eff' type='text' value='0'></td><td><input name='modifier[]' type='checkbox' value='10'></td></tr><tr><td><input name='com' id='com' type='text' value='test2'></td><td>cables</td><td><input name='qte1' type='text' value ='6'></td></td><td>cm</td><td>6</td><td><input name='aleas1' type='text' value='6'></td><td>36</td><td>216</td><td><input name='heure_eff' id='heure_eff' type='text' value='0'></td><td><input name='modifier[]' type='checkbox' value='8'></td></tr><br><TR><TD><br></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td><u><b>Total heures : </u></td><td><b>292</B></td><td><b>0</tr></table><br><br><b>FONDATATION</b><br><br><table border=1><tr><td></td><td><b>Nom Tâche</b></td><td><b>Quantité</b></td><td><b>Unité</b></td><td><b>TU Bible</b></td><td><b>Aleas</b></td><td><b>TU</b></td><td><b>Heures théoriques</b></td><td><b>Heures effectives</b></td></tr><br><TR><TD><br></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td><u><b>Total heures : </u></td><td><b></B></td><td><b></tr></table><br><br><td><input name='modif' type='submit' value='Modifier'></td><td><input name='suprr' type='submit' value='Supprimer'></td></tr></form> </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
désolé de poster deux fois mais c'est pour plus de lisibilité...
je te remet le nouveau code de mon formulaire au cas ou egalement...merci de ton aide
je te remet le nouveau code de mon formulaire au cas ou egalement...merci de ton aide
<form action="" method="POST"> <? $select_type = mysql_query("SELECT * FROM type_tache"); while ($liste_type = mysql_fetch_array($select_type)) { echo "<b>".$liste_type['nom_type']."</b><br><br><table border=1>"; echo "<tr><td></td>"; echo "<td><b>Nom Tâche</b></td>"; echo "<td><b>Quantité</b></td>"; echo "<td><b>Unité</b></td>"; echo "<td><b>TU Bible</b></td>"; echo "<td><b>Aleas</b></td>"; echo "<td><b>TU</b></td>"; echo "<td><b>Heures théoriques</b></td>"; echo "<td><b>Heures effectives</b></td></tr>"; $idtype_tache = $liste_type['idtype_tache']; $select_budget = mysql_query("SELECT * FROM budget,taches, unite, tu_bib, type_tache WHERE budget.idchantier='$idchantier' AND budget.idbatiments ='$idbatiments' AND budget.idniveau='$idniveau' AND type_tache.idtype_tache='$idtype_tache' AND type_tache.idtype_tache=taches.idtype_tache AND taches.idtaches = budget.idtaches AND tu_bib.idtu_bib=taches.idtu_bib AND unite.idunite = taches.idunite"); while ($liste_budget=mysql_fetch_array($select_budget)) { echo "<tr><td><input name='com' id='com' type='text' value='".$liste_budget['com']."'></td>"; $idbudget = $liste_budget['idbudget']; $select_tache1 = mysql_query("SELECT * from taches,type_tache, budget WHERE budget.idtaches=taches.idtaches AND type_tache.idtype_tache = budget.idtype_tache AND idbudget='$idbudget'"); $tab1 = mysql_fetch_array($select_tache1); echo "<td>".$tab1['nom_taches']."</td>"; echo "<td><input name='qte1' type='text' value ='".$liste_budget['qte']."'></td>"; $idunite = $liste_budget['idunite']; $idtu_bib = $liste_budget['idtu_bib']; $select1 = mysql_query("SELECT * FROM unite WHERE idunite ='$idunite'"); $tab1 = mysql_fetch_array($select1); $select2 = mysql_query("SELECT * FROM tu_bib WHERE idtu_bib ='$idtu_bib'"); $tab2 = mysql_fetch_array($select2); echo"</td><td>"; echo $tab1['nom_unite']; echo"</td><td>"; echo $tab2['tu_bib']; echo "</td><td>"; echo "<input name='aleas1' type='text' value='".$liste_budget['aleas']."'>"; echo "</td><td>"; echo $liste_budget['tu']; echo "</td><td>"; echo $liste_budget['heure_the']; echo "</td><td>"; echo "<input name='heure_eff' id='heure_eff' type='text' value='".$liste_budget['heure_eff']."'></td>"; echo "<td><input name='modifier[]' type='checkbox' value='".$liste_budget['idbudget']."'>"; echo "</td></tr>"; } $calcul = mysql_query("SELECT sum(heure_the) as somme FROM budget WHERE budget.idchantier='$idchantier' AND budget.idbatiments ='$idbatiments' AND budget.idniveau='$idniveau' AND budget.idtype_tache='$idtype_tache' "); $calcul2 = mysql_query("SELECT sum(heure_eff) as somme FROM budget WHERE budget.idchantier='$idchantier' AND budget.idbatiments ='$idbatiments' AND budget.idniveau='$idniveau' AND budget.idtype_tache='$idtype_tache' "); $heure_total_the = mysql_fetch_assoc($calcul); $heure_total_eff = mysql_fetch_assoc($calcul2); echo "<br><TR><TD><br></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td><u><b>Total heures : </u></td><td><b>".$heure_total_the['somme']."</B></td><td><b>".$heure_total_eff['somme']."</tr>"; echo "</table><br><br>";} echo "<td><input name='modif' type='submit' value='Modifier'></td><td><input name='suprr' type='submit' value='Supprimer'></td></tr>"; if(isset($_POST['suprr']) ) { foreach ($_POST['modifier'] as $idbudget1) { $delete = "DELETE FROM budget WHERE idbudget='$idbudget1'"; $requete_delete = mysql_query($delete, $connect); echo "<META HTTP-equiv=\"refresh\"content=0;URL=add_budget.php?idchantier=".$idchantier."&batiments=".$idbatiments."&niveau=".$idniveau.">";// on revient sur le formulaire }} if(isset($_POST['modif']) ) { $com = $_POST['com']; $heure_eff=$_POST['heure_eff']; $qte1 = $_POST['qte1']; $aleas1 = $_POST['aleas1']; $tu1=$tab2['tu_bib']*$aleas1; $heure_the1=$qte1*$tu1; foreach ($_POST['modifier'] as $idbudget) { $update = "UPDATE budget SET com='$com', heure_eff='$heure_eff', qte='$qte1', aleas='$aleas1', tu='$tu1', heure_the='$heure_the1' WHERE idbudget ='$idbudget'"; $requete_update = mysql_query($update, $connect); echo "<META HTTP-equiv=\"refresh\"content=0;URL=add_budget.php?idchantier=".$idchantier."&batiments=".$idbatiments."&niveau=".$idniveau.">";// on revient sur le formulaire }} ?> </form>
En fait, est-ce que tu as lu mon premier message ? Non, je dis ça parce que tu as toujours tes champs qui ont le même nom...
Et au passage, cela n'a rien à voir avec le problème, mais méfie-toi : ta table n'est pas toujours bien formée (y a des </td> sans <td> et des <td> sans </td>)
Et au passage, cela n'a rien à voir avec le problème, mais méfie-toi : ta table n'est pas toujours bien formée (y a des </td> sans <td> et des <td> sans </td>)
oui oui j'ai bien lu ton premier message lol et j'ai bien fait les modifs...si tu regarde bien les champs que je desire modifier ( aleas, qte, com, heure_eff) n'ont soit pas le même nom lorsque je re recupère les données ( aleas1 et qte1) soit n'existent pas encore ( com et heure_eff) après il est possible que j'en vois pas un mais bon^^