Récupération des variables avec méthode post
Résolu
gahmed
Messages postés
79
Statut
Membre
-
gahmed Messages postés 79 Statut Membre -
gahmed Messages postés 79 Statut Membre -
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:
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
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:
- Récupérer valeur variable powershell
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
3 réponses
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 />";
}
}
}
?>