Récupération tableau via requete
xfire
-
xfire. -
xfire. -
Bonjour,
J'enregistre un tableau sur une page php avec des données qui s'appellent donnee1['+i+'] donnee2['+i+'] donnee3['+i+'] dans une fonction javascript, où i est le numéro de la ligne (incrémenté a chaque nouvelle ligne).
Je passe ensuite les valeurs en POST a une autre page et je les récupèrent :
$donnee1=intval($_POST["donnee1"][$i]);
j'exécute ma requête dans une boucle:
($trs est le nombre de lignes)
for($i=3; $i<$trs; $i++){
$q2="INSERT INTO table (donnee1,.....) VALUES ('$donnee1',....)";
le problème est qu'il ne me met dans la BDD que la 2eme (et dernière ligne dans mon exemple) et il l'a met en double.
Mon problème est que je n'arrive pas à mettre chaque ligne dans la BDD, je n'arrive pas a faire changer la valeur de i pour exécuter la requete.
auriez vous une piste svp?
merci :)
J'enregistre un tableau sur une page php avec des données qui s'appellent donnee1['+i+'] donnee2['+i+'] donnee3['+i+'] dans une fonction javascript, où i est le numéro de la ligne (incrémenté a chaque nouvelle ligne).
Je passe ensuite les valeurs en POST a une autre page et je les récupèrent :
$donnee1=intval($_POST["donnee1"][$i]);
j'exécute ma requête dans une boucle:
($trs est le nombre de lignes)
for($i=3; $i<$trs; $i++){
$q2="INSERT INTO table (donnee1,.....) VALUES ('$donnee1',....)";
le problème est qu'il ne me met dans la BDD que la 2eme (et dernière ligne dans mon exemple) et il l'a met en double.
Mon problème est que je n'arrive pas à mettre chaque ligne dans la BDD, je n'arrive pas a faire changer la valeur de i pour exécuter la requete.
auriez vous une piste svp?
merci :)
Configuration: Windows XP Firefox 3.0.5
13 réponses
-
-
même en mettant for ($i=0; $i<$trs-3; $i++) dans la boucle ça ne change pas, toujours autant d'enregistrements que de lignes pour la dernière seulement, rien pour les autres lignes du tableau :(
-
dans ta page de récupération de données essaye d'afficher les données avant d'eesayer de les envoyer par sql.
-
Je viens d'essayer un echo"$donnee1"; dans la boucle et je vois 2 fois la dernière ligne ...
pareil si je le mets avant la boucle je ne vois qu'une fois la dernière ligne -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
faudrait déjà changer
donnee1['+i+']
par
donnee1[i]
afin kil puisse voir le i comme index de parcours -
-
bien sur
saisie.php:
<!--SCRIPT QUI COMPTE LE NOMBRE DE LIGNES--> <script language=javascript> function count(){ var tableau = document.getElementById('tablecontrat'); //Calcul du nombre de ligne dans le tableau -> on regarde combien il y a de tr dans le tableau var trs = tableau.getElementsByTagName('tr').length; // Stockage de la variable trs dans le champs caché portant le même nom document.forms[0].trs.value = trs; } </script> <td><INPUT TYPE="text" name="NumContrat" size="10"></td> <td><SELECT NAME="NomTypeContrat" size="1"> <option value="Hotline + Maj Soft">Hotline + Maj Soft</option> <option value="Echange Standard">Echange Standard</option> .... .... </SELECT> <!-- SCRIPT AJOUTER UNE LIGNE DE CONTRAT--> <script language="javascript"> var numero=0; function AddRow0(){ numero++; var newRow = document.getElementById('tablecontrat').insertRow(-1); //var nouveauTr = document.createElement('tr'); var newCell = newRow.insertCell(0); newCell.align = 'center'; newCell.innerHTML = '<input type="text" name="NumContrat"[numero]" id="NumContrat"[numero]" size="10">'; var newCell = newRow.insertCell(1); newCell.align = 'center'; newCell.innerHTML = '<SELECT NAME="NomTypeContrat[numero]" id="NomTypeContrat[numero]"><option value="Hotline + Maj Soft">Hotline + Maj Soft</option><option value="Echange Standard">Echange Standard</option> ... ... ar newCell = newRow.insertCell(10); newCell.align = 'center'; newCell.innerHTML = '<img src="croix.png" onclick="deleteCurrentRow(this)" alt="Delete" >'; document.forms[0].numero.value = numero; </script> <input name="clic1" type="button" onClick="AddRow0()" value="Ajouter Un Contrat"> <INPUT TYPE="submit" value="Valider La saisie"> <input type="hidden" name="trs" /> <FORM ACTION="insert.php" METHOD="POST"> <INPUT TYPE="hidden" name="numero" id="numero" /> </form></form></FORM> <?php close(); ?> </body> </html>
qui appelle insert.php:
$NomTypeContrat=$_POST["NomTypeContrat"][$numero]; $Actif = isset($_POST['Actif'][$numero])?$_POST['Actif'][$numero]:"Oui"; $JourDebut=intval($_POST["JourDebut"][$numero]); $AnneeDebut=intval($_POST["AnneeDebut"][$numero]); $JourFin=intval($_POST["JourFin"][$numero]); ... ... for($numero=0; $numero<$trs-3; $numero++){ echo "NumContrat :"; echo $NumContrat; echo "<br>numero: "; echo $numero; $query2="INSERT INTO contrat(NumClient,NumContrat,JourDebut,MoisDebut,AnneeDebut,JourFin,MoisFin,AnneeFin,NomTypeContrat,Actif,MontantHT,Periodicite,Terme,Paiement) VALUES ('$NumClient','$NumContrat','$JourDebut','$MoisDebut','$AnneeDebut','$JourFin','$MoisFin','$AnneeFin','$NomTypeContrat','$Actif','$MontantHT','$Periodicite','$Terme','$Paiement')"; mysql_query($query2) or die(mysql_error()); $req2 = "SELECT ID,NumClient,NumContrat,JourDebut,MoisDebut,AnneeDebut,JourFin,MoisFin,AnneeFin,NomTypeContrat,Actif,MontantHT,Periodicite,Terme,Paiement FROM contrat WHERE NumClient=$NumClient"; $sql2 = mysql_query($req2) or die(mysql_error());
j'ai essayé de réduire au maximum pour que ça reste lisible
merci de prendre le temps de m'aider :)
-
-
-
-
-
-
-
-
oups je viens de voir le bug.... les nouveaux messages ne s'affichaient pas a mon écran ... désolé pour le flood :s