Bonjour,
Je ne m’en sors pas avec mon formulaire de mise à jour.
Dans ce formulaire, l’utilisateur aura dans les champs le contenu de la base qu’il pourra modifier. (DELETE des données puis INSERT des nouvelles données saisies)
Lorsqu’il s’agit que d’une ligne = pas de problème.
Mais l’utilisateur à la possibilité d’appuyer sur un bouton plus pour ajouter de nouvelles lignes. (générées à l’aide de JAVASCRIPT)
Je dois mal m’y prendre au niveau des boucles car je n’ai pas le résultat voulu.
Soit les résultats s’affichent sur plusieurs lignes mais en prenant en compte que la dernière saisie, soit je n’arrive à afficher qu’une ligne.
Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 <? // FORMULAIRE DE MODIFICATION if (isset ($_POST['BtdbEnvoyer'])) { //Suppression des données $sqlDelAct = " DELETE FROM `action_has_tdb` WHERE `idTdb` = $dernierEnr "; mysql_query($sqlDelAct) or die('Erreur SQL !'.$sqlDelAct.'<br>'.mysql_error()); //Insertion des données for ($i=0;$i<$_POST['nbreLigneAct'];$i++) { if(isset($_POST['ActAct'][$i])) $ActAct = $_POST['ActAct'][$i]; else $ActAct = 0; if(isset($_POST['ActObj'][$i])) $ActObj = $_POST['ActObj'][$i]; else $ActObj = 0; $sqlAction = " INSERT INTO indicaperf.action_has_tdb (`idTdb`,`Action`,`Objectif`) VALUES('$dernierEnr','$ActAct','$ActObj')"; mysql_query($sqlAction) or die(mysql_error()); } ?> <!--construction--> <html> <head> <link href="styleIndicaPerf.css" rel="stylesheet" type="text/css" /> <script language="javascript" src="script.js"> </script> </head> <body class="body"> <form name="FormTdb" method="post" action="formTypeUpdate.php#formulaire"> <table class="tableAction"> <tr> <th class="action"><b>Actions</b></th> <th class="action"><b>Objectifs et Gains</b></th> </tr> <? //Affichage des données de la BDD dans les champs echo $sqlAffichAction = "SELECT * FROM action_has_tdb WHERE idTdb = $dernierEnr"; $resultAction = mysql_query($sqlAffichAction) or die ('Erreur : '.mysql_error() ); while($rowAction = mysql_fetch_array($resultAction)) { for ($i=0;$i<$_POST['nbreLigneAct'];$i++) { if(isset($_POST['ActAct'][$i])) $ActAct = $_POST['ActAct'][$i]; else $ActAct = 0; if(isset($_POST['ActObj'][$i])) $ActObj = $_POST['ActObj'][$i]; else $ActObj = 0; ?> <tr> <td class="action"><textarea rows='5' cols="25" name='ActAct[]'><? if($ActAct!=0) echo $ActAct; else echo $rowAction["Action"];?></textarea></td> <td class="action"><textarea rows='5' cols="15" name='ActObj[]'><? if($ActObj!=0) echo $ActObj; else echo $rowAction["Objectif"];?></textarea></td> </tr> <? } } ?> </table> <div id=saisiesAct></div> <div align=center><input type=button value="+" onclick=AjouterAction()></div> <input type="hidden" name="nbreLigneAct" value="<?if (isset($_POST['nbreLigneAct'])) echo $_POST['nbreLigneAct']; else echo "1";?>" id="NbreLigneAct"> <input type="submit" name="BtdbEnvoyer" value="modifier"></br> <a name="formulaire"></a> <? if (isset ($_POST['BtdbEnvoyer'])) echo "<font color=green>Données modifées dans la base</font>"; ?> </form> </body> </html> <? } ?>
Merci d’avance à ceux qui s’intéresseront à mon problème.
Partager