Récupération des variables avec méthode post

Résolu/Fermé
gahmed Messages postés 71 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 12 septembre 2018 - 3 juil. 2012 à 20:31
gahmed Messages postés 71 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 12 septembre 2018 - 6 juil. 2012 à 18:28
Bonjour tout le monde,
j'ai un problème pour récupérer les données que j'ai saisi sur un tableau. Voici mon script en HTML:
<html>
<script language="javascript1.5">
function ajouterLigne()
{
	var tableau = document.getElementById("tableau");

	var ligne = tableau.insertRow(-1);

	var colonne1 = ligne.insertCell(0);
	colonne1.innerHTML += document.getElementById("lib").value;
	
	var colonne2 = ligne.insertCell(1);
	colonne2.innerHTML += document.getElementById("pu").value;
	
	var colonne3 = ligne.insertCell(2);
	colonne3.innerHTML += document.getElementById("qte").value;

	var colonne4 = ligne.insertCell(3);
	colonne4.innerHTML += colonne2.innerHTML * colonne3.innerHTML ;

	
}
</script>
<form method="post" action="save.php">
	<input type="text" name="lib" id="lib"  />
	<input type="text" name="pu" id="pu" />
	<input type="text" name="qte" id="qte" />

	<input type="button" onclick="ajouterLigne();" value="Enregistrer"/>

<table id="tableau" border="1">
	<thead>
		<tr>
			<th>Libelle</th>
			<th>Prix Unitaire</th>
			<th>Quantité</th>
			<th>Prix Total</th>
		</tr>
	</thead>
	<tbody>
		
	</tbody>
</table>
</form>
</html>


Le problème est que je ne sais pas comment faire pour récupérer les valeurs du tableau avec la méthode POST sur le fichier save.php

Merci d'avance



A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 juil. 2012 à 13:33
voir commentaires et exemple:
<html>
<script language="javascript1.5">
function ajouterLigne()
{
	var tableau = document.getElementById("tableau");

	var ligne = tableau.insertRow(-1);

	var colonne1 = ligne.insertCell(0);
	colonne1.innerHTML += document.getElementById("lib").value; //la je ne vois pas ccomment ça peut rajouter une ligne ??, il faut rajouter un inpuit
	
	var colonne2 = ligne.insertCell(1);
	colonne2.innerHTML += document.getElementById("pu").value;
	
	var colonne3 = ligne.insertCell(2);
	colonne3.innerHTML += document.getElementById("qte").value;

	var colonne4 = ligne.insertCell(3);
	colonne4.innerHTML += colonne2.innerHTML * colonne3.innerHTML ;

	
}
</script>
<form method="post" action="save.php">
	<input type="text" name="lib" id="lib"  />
	<input type="text" name="pu" id="pu" />
	<input type="text" name="qte" id="qte" />
	<!-- plutot bizarre ce bouton il affiche Enregitrer alors que sa fonction est d'ajouter une ligne ?? -->
	<input type="button" onclick="ajouterLigne();" value="Enregistrer"/>

<table id="tableau" border="1">
	<thead>
		<tr>
			<th>Libelle</th>
			<th>Prix Unitaire</th>
			<th>Quantité</th>
			<th>Prix Total</th>
		</tr>
	</thead>
	<tbody>
		
	</tbody>
</table>
</form>
</html>

VOILA une solution

<html>
<head>
<title>Insertion de lignes en JS</title>
<?php
/
?>
<script type="text/javascript">
<!--
//init variables JS globales

//i elle conserve sa valeur entre chaque appel de la fonction
//c a d après le premier appel elle va passer à 1 etc...
i=0;

function create_champ(){
	//on increment la variable globale i, numero de produit
	i++;	
	// en JS on peut atteindre les elements de la page HTML par document.getElementById
	// creation de l'objet tableau avec lequeml on va travailler
    var obj_tableau=document.getElementById("tableau_produits"); 
	//lecture des lignes du tableau actuel, JS le met dans un array
	var arrayLignes = obj_tableau.rows;
	//pour avoir le nombre de lignes, avec  .length on a la taille de l'array
	var nbr_de_lignes=arrayLignes.length;
	//on insere une nouvelle ligne de tableau juste avant celle contenant le bouton
	var nouvelleLigne = obj_tableau.insertRow(nbr_de_lignes-1);
	//ensuite on remplit chacune des cellules <td></td> du tableau avec les input
	var colonne1=nouvelleLigne.insertCell(0);
	colonne1.innerHTML='<input type="text" name="lib_produit['+i+']" value="" />';;	
	var colonne2=nouvelleLigne.insertCell(1);
	colonne2.innerHTML='<input type="text" name="prix_unit_produit['+i+']" value="" />';
	var colonne3=nouvelleLigne.insertCell(2);
	colonne3.innerHTML='<input type="text" name="qte_produit['+i+']" value="" />';
	var colonne4=nouvelleLigne.insertCell(3);
	colonne4.innerHTML='<input type="text" name="prix_total_produit['+i+']" value="" />';
	
	//tu peux rajouter des colonnes, modifier le name, mais garde sa forme name="lib_produit['+i+']"
	//ainsi tu pourra facilement récuper par $_POST['lib_produit'] qui est un array, donc boucler pour insertion dans BDD
}
-->
</script>
</head>
<body onload="javascript:create_champ();">
<!-- au chargement de la page on ajoute la premiere ligne produit -->
<form name="form_ajaout_cde" method="post" action="save.php" >
<table width="800" id="tableau_produits" >
    <tr>
        <th>Libelle</th>
		<th>Prix Unitaire</th>
		<th>Quantité</th>
		<th>Prix Total</th>
        
    </tr>
    <tr>
        <td colspan="4">
			<input name="button" type="button" class="input2" onClick="javascript:create_champ()" value="Ajouter une ligne produit">
		</td>
    </tr>
	<tr>
        <td colspan="4">
			<input name="enregistrer" type="submit" class="input2" value="Enregistrer">
		</td>
    </tr>
</table>

</form>
</body>
</html>

et le fichier save.php

<?php
if(isset($_POST['enregistrer'])){
	//on recupere les valeurs postées, les produits sont dans un array ex: $_POST['lib_produit'] est un array parce qu'on a mis dans les input un name de la forme lib_produit[i]
	//pour visualiser cela: (tu enlèves ça ensuite bien sur)
	echo '<pre>';
	print_r($_POST);
	echo '</pre>';
	$nb_produits=sizeof($_POST['lib_produit']);
	if( $nb_produits>0){
		for($i=1; $i <= $nb_produits; $i++){
			//par exemple avec un echo 
			echo "Produit ".$i." Lib: ".$_POST['lib_produit'][$i]." px unit: ".$_POST['prix_unit_produit'][$i]." qte: ".$_POST['qte_produit'][$i]." prx total: ".$_POST['prix_total_produit'][$i]."<br />";
			
		}
	}
}
?>
1
jojo150393 Messages postés 330 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 29 juillet 2015 23
5 juil. 2012 à 23:29
Tous ce qui est envoyé par post est contenu dans la variable système $_POST.
Fait un petit print_r($_POST) pour voir ce que contient ce tableau.
0
gahmed Messages postés 71 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 12 septembre 2018 3
6 juil. 2012 à 18:28
Merci beaucoup Alain_42 mon problème est résolu
0