Ajout d'une nouvelle commande avec PHP

Résolu/Fermé
glow_ivory Messages postés 18 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 3 juin 2012 - 15 mai 2012 à 12:53
glow_ivory Messages postés 18 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 3 juin 2012 - 16 mai 2012 à 09:24
Bonjour,
je travaille sur 2 fichiers pour l'ajout d'une nouvelle commande ,le 1er fichier est en HTML il contient un formulaire ,le 2eme est en PHP (il contient les requettes nécessaires pour l'insertion d'une nouvelle commande )et ça marche bien pour un seul produit
le probleme c'est que je veux faire la meme chose pour plusieurs produits en meme temps(sachant que mon premier fichier contient un script qui permet d'ajouter une nouvelle ligne dans mon formulaire une fois je clique sur le boutton) ,j'ai pensé à garder le meme code avec l'ajout d'une boucle ,mais ça marche pas parce que je sais pas ou je dois mettre la boucle exactement
voici mes 2 fichiers:
fichier1(HTML):
<html>
<HEAD>


	<TITLE>detail de commande</TITLE>


	<SCRIPT LANGUAGE="JavaScript" SRC="CalendarPopup.js"></SCRIPT>


	<SCRIPT LANGUAGE="JavaScript">


	var cal = new CalendarPopup();

	</SCRIPT>


</HEAD>

<body>
<form name="form" action="detail_cmd2.php" method="post">
Nmero de commande:<input type="text" name="num"  id="num" value=""></br>
dte
<INPUT TYPE="text" NAME="date1" id="date1" VALUE="" SIZE=25>


<A HREF="#"


   onClick="cal.select(document.forms['form'].date1,'anchor1','yyyy-MM-dd'); return false;"


   NAME="anchor1" ID="anchor1">select</A></br>
   
   <Div ID=saisies> Produit 1 <input type=text size=4 name="P1" id="P1"> Quantité 1 <input type=text name="QT1" id="QT1"></Div></br>
<Input Type=Button Value="Ajouter une ligne" OnClick=Ajouter()></br>


<script>

var nlignes = 1;

function Ajouter(){

nlignes++;

saisies.insertAdjacentHTML('BeforeEnd','<BR>Produit '+nlignes+' <input type=text size=4 name=P'+nlignes+' id=P'+nlignes+' > Quantité '+nlignes+' <input type=text name=QT'+nlignes+' id=QT'+nlignes+'>');

};

</script>


                 <input type="submit" name="envoyer" value="Valider"></center>
</form>
</body>

fichier2
<htmL >
   <head>
       <title></title>
   </head>
 
   <body>
 
    
         <?php
try
{
    // On se connecte à MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=bon_commande', 'root', '', $pdo_options);
	$reqq = $bdd->prepare('SELECT price FROM sku WHERE code_sku = ?');
$reqq->execute(array($_POST['P1']));
 while ($donnees = $reqq->fetch())
    {
	$var=$donnees['price'];
	}
      $reqq->closeCursor();

$req = $bdd->prepare('INSERT INTO detail_cmd(code_sku,num_cmd,qte,dte,prix ) VALUES(:P1, :num, :QT1, :date1, :prix)');
$req->execute(array(
    
    'P1'=> $_POST['P1'],
	  'num'=> $_POST['num'],
	    'QT1'=> $_POST['QT1'],
		  'date1'=> $_POST['date1'],
	'prix' => $var
	));
	}
	catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
echo'<p>la grille a été bien remplie</p>';
?>

       </div>
 
       <!-- Le pied de page -->
 
       
 
   </body>
</html>


Merci pour votre aide


A voir également:

2 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
15 mai 2012 à 22:11
essayes comme ça:
<html>
<HEAD>


	<TITLE>detail de commande</TITLE>


	<SCRIPT LANGUAGE="JavaScript" SRC="CalendarPopup.js"></SCRIPT>


	<SCRIPT LANGUAGE="JavaScript">


	var cal = new CalendarPopup();

	</SCRIPT>


</HEAD>

<body>
<form name="form" action="detail_cmd2.php" method="post">
Nmero de commande:<input type="text" name="num"  id="num" value=""></br>
dte
<INPUT TYPE="text" NAME="date1" id="date1" VALUE="" SIZE=25>


<A HREF="#"


   onClick="cal.select(document.forms['form'].date1,'anchor1','yyyy-MM-dd'); return false;"


   NAME="anchor1" ID="anchor1">select</A></br>
   
   <Div ID=saisies> Produit 1 <input type=text size=4 name="P1" id="P1"> Quantité 1 <input type=text name="QT1" id="QT1"></Div></br>
<Input Type=Button Value="Ajouter une ligne" OnClick=Ajouter()></br>


<script>

var nlignes = 1;

function Ajouter(){

nlignes++;

saisies.insertAdjacentHTML('BeforeEnd','<BR>Produit '+nlignes+' <input type=text size=4 name=P'+nlignes+' id=P'+nlignes+' > Quantité '+nlignes+' <input type=text name=QT'+nlignes+' id=QT'+nlignes+'>');
// rajoutes cette ligne //
document.getElementById('nombre_lignes').value=nlignes;
};

</script>

				<!-- rajoutes cette ligne -->
				<input type="hidden" name="nombre_lignes" id="nombre_lignes" value="1" />
                 <input type="submit" name="envoyer" value="Valider"></center>
</form>
</body>


fichier2

<htmL >
   <head>
       <title></title>
   </head>
 
   <body>
 
    
         <?php
		 //recup nombre de lignes
		 $nombre_lignes=$_POST['nombre_lignes'];
try
{
    // On se connecte à MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=bon_commande', 'root', '', $pdo_options);
	for($n=1;$n<=$nombre_lignes;$n++){
		$reqq = $bdd->prepare('SELECT price FROM sku WHERE code_sku = ?');
		$reqq->execute(array($_POST['P'.$n]));
		while ($donnees = $reqq->fetch())
		{
			$var=$donnees['price'];
		}
		  $reqq->closeCursor();

		$req = $bdd->prepare('INSERT INTO detail_cmd(code_sku,num_cmd,qte,dte,prix ) VALUES(:P1, :num, :QT1, :date1, :prix)');
		$req->execute(array(
		
		'P1'=> $_POST['P'.$n],
		  'num'=> $_POST['num'],
			'QT1'=> $_POST['QT'.$n],
			  'date1'=> $_POST['date'.$n],
		'prix' => $var
		));
	}
}
		catch(Exception $e)
{
		die('Erreur : '.$e->getMessage());
}
	
echo'<p>la grille a été bien remplie</p>';
?>

       </div>
 
       <!-- Le pied de page -->
 
       
 
   </body>
</html>
1
glow_ivory Messages postés 18 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 3 juin 2012
16 mai 2012 à 09:24
ça marche tres tres bien ,Merci Alain_42 c gentil :)
0