Récupération tableau via requete

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 :)
A voir également:

13 réponses

Profil bloqué
 
Bjr,déjà pourquoi la numerotation de ta boucle tu la démarre par 3 ?
0
xfire
 
C'est parce qu'en fait dans mon tableau il y a déjà 2 lignes occupées pour le titre du tableau + le nom des colonnes, donc pas de données à récupérer dans ces lignes là.
0
xfire
 
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 :(
0
Profil bloqué
 
dans ta page de récupération de données essaye d'afficher les données avant d'eesayer de les envoyer par sql.
0
xfire
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
 
faudrait déjà changer

donnee1['+i+']

par

donnee1[i]

afin kil puisse voir le i comme index de parcours
0
xfire
 
j'ai déjà essayé de virer les '+' dans le javascript de la 1ère page mais ça me retourne une erreur :
Notice: Undefined index: 1 in C:\Program Files\EasyPHP 3.0\www\UPNETWORKS\Insert.php on line 29 (a 38)
0
Profil bloqué
 
est-ce que je peux voir tes deux pages?
0
xfire
 
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 :)
0
xfire > xfire
 
personne ne sais?
0
xfire
 
pas d'idées? :(
0
xfire
 
personne ne sais?
0
xfire
 
pas d'idées? :(
0
xfire.
 
personne ne peut m'aider svp?
0
xfire.
 
personne ne peux m'aider?
0
xfire.
 
pas d'idées?
0
xfire.
 
oups je viens de voir le bug.... les nouveaux messages ne s'affichaient pas a mon écran ... désolé pour le flood :s
0