Insertion dans deux tables liées
slt tout le monde. quelqu'un pour m'aider svp!
j'ai crée une page php avec des plusieurs ligne de saisie
ou on peut saisir plusieurs articles et on peut ajouter autres lignes en clicquant sur le boton (+) pour saisir encore d'autres articles.
j'arrive a recupérer et afficher les données saisie.
le problème est que je sais pas comment faire pour enregistrer ses données dans les deux tables qui sont liées ou les clés sont incrémentées automatiquement dans la base.
Voila mon code:
Code:
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
| <script type="text/javascript" src="">
function enregistrer(){
document.form.method="POST";
document.form.action="form.php";
document.form.submit();
}
/* trouve le tag "parentTagName" parent de "element" */
function getParent(element, parentTagName) {
if ( ! element )
return null;
else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )
return element;
else
return getParent(element.parentNode, parentTagName);
}
/* ajoute une ligne */
function addLigne(link) {
// 1. récuperer le node "TABLE" à manipuler
var td = link.parentNode;
var table = getParent(td,'TABLE');
// 2. on va manipuler le TBODY
var tbody = table.tBodies[0];
// 3. on clone la ligne de reference
var newTr = tbody.rows[0].cloneNode(true);
tbody.appendChild(newTr);
if ( document.all )
newTr.style.display = "block"; // pour IE
else
newTr.style.display = "table-row"; // pour Gecko
}
/* supprimer une ligne */
function delLigne(link) {
var td = link.parentNode;
var table = getParent(td, 'TABLE');
var tbody = table.tBodies[0];
if (tbody.rows.length > 1) {
tbody.removeChild(getParent(td, 'TR'));
} else {
alert('Vous ne pouvez pas supprimer cette ligne');
}
}
window.onload = ltableInit;
/* initialise le script */
function ltableInit() {
var table = document.getElementsByTagName('TABLE');
for ( var i = 0; i < table.length; i++ ) {
// on récupère tous les tableaux dynamiques
if ( table[i].className == 'lTable' ) {
var tbody = table[i].tBodies[0];
var newTr = tbody.rows[0].cloneNode(true);
// on masque la première ligne du tbody (la ligne de reference)
tbody.rows[0].style.display = 'none';
// on en ajoute une
tbody.appendChild(newTr);
}
}
}
</script>
</head>
<?php
$serveur ="localhost";
$user="root";
$pwd="";
$bd="baset";
$connexion=mysql_connect("$serveur","$user","$pwd");
?>
<body>
<form name="form" >
<div style="text-align: center">
<table name='details'>
<tr>
<td colspan="3"> <center><h1><i>Saisie</i></h1></center></td>
</tr>
<tr>
<td> Numéro :</td><td>><input type="text" name="num" size="10" maxlength="10"> </td>
</tr>
<tr>
<td> Code service : </td><td><input type="text" name="service" size="10" maxlength="10"> </td>
</tr>
<tr>
<td> Commentaire : </td><td><input type="text" name="commentaire" size="62" maxlength="60"></td>
</tr>
</table>
<table class="lTable" border=1>
<thead>
<tr>
<th><b>Libellé article</b></th>
<th><b>Quantité demandée</b></th>
<th><b>Commentaire</b></th>
<td colspan="5" ><div style="text-align: center"><a href="#" onclick="addLigne(this); return false;"><b><font size="+2">+</font></b></a></div></td>
<!-- <td><Input Type=button Value="+" OnClick=AddRow()></td> -->
</tr>
</thead>
<tfoot>
<tr>
</tr>
</tfoot>
<tbody>
<tr><td><input type="text" size=20 name="qte_dmde[]"></td>
<td><input type="text" size=20 name="qte_dmde[]"> </td>
<td> <input type="text" size=15 name="qte_servie[]"> </td>
<td> <input type="text" size=60 name="commentart[]"></td>
<td><a href="#" onclick="delLigne(this); return false;">Supp</a></td>
</tr>
</tbody>
</table>
<br><div style="text-align: center"><input type="button" value="Enregistrer" onclick="enregistrer()">
<input type="reset" value="Annuler"> </div>
</form>
<?php
if (isset($_POST["commentaire"])) {
$service = $_POST["service"];
$commentaire = $_POST["commentaire"];
$connexion=mysql_connect($serveur, $user,$pwd) or die ("impossible d'acceder au sgbd");
$connectbd=mysql_select_db($bd,$connexion)or die (" impossible de se connecter a la base de donnée mysql");
$code_article = $_POST["code_article"];
$qte_dmde = $_POST["qte_dmde"];
$commentart = $_POST["commentart"];
foreach ($code_article as $cle => $code_article)
{
echo "$code_article\n";
echo "$qte_dmde[$cle]\n";
echo "$commentart[$cle]<br>";
$requete1= "INSERT INTO demandes (Date_Dmde ,Code_Service ,Etat_Dmde, Commentaire) VALUES ('$date_dmde','$code_service','$etat_dmde','$commentart')" ;
$requete2= "INSERT INTO datailsdmd (Code_Article ,Qte_Dmde, Commentaire) VALUES ('$code_article','$qte_dmde[$cle]','$commentart[$cle]')" ;
if (mysql_query ($requete1) && mysql_query ($requete2))
{
print("<font color=\"#0000FF\">La demande à bien été enregistrée!</font><p>");
}
else
{
print("<font color=\"#FF0000\">Echec d'ajout de la demande, Veuillez recommencer</font><P>");
}
}
}
?>
</div>
</form>
</body>
</html> |