Bon il n'est pas encore trop tard donc .... je vais faire vite :
ci-dessous le code de deux pages : panier.php et paniertemp.php qui interagissent
dans la page panier, trois manières d'envoyer la variable de quantité : en URL avec Get, en Javascript avec evenement getElementById transfèrant une valeur, en Url + session + redirection
Après il n'y a plus qu'à choisir
Attention, j'ai un peu fait évoluer le code initial. Il faut se forcer à ne pas mélanger variables dynamiques (fonction de calcul, de controle etc.) avec du pur HTML.
la syntaxe type
echo "<td><font>".$toto."</font></td>"
est à déprécier au profit de
... $toto="qqc";}// fin de fonction ou fin de bloc PHP <div id='mondiv'><?php echo $toto; ?> </div>"
Voici la page panier.php
<?php session_start(); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><?php /************* POUR LES TEST LES VARIABLES SONT PASSEES EN 'DUR' ****************************/ isset($_GET['id'])?$id = $_GET['id']:$id=""; // Syntaxe de type langage C -> condition ? vrai : faux (ou NULL); /************ désactiver les commentaires pour l'utilisation en 'réel' *************************/ //require("configuration.php"); //$result = mysql_query("SELECT $sbbproduit.id, $sbbproduit.hid, $sbbproduit.sid, $sbbproduit.nom, $sbbproduit.ancienprix, $sbbproduit.spec, $sbbproduit.photoarticle, $sbbproduit.frais, $sbbproduit.promo, $sbbproduit.prix, $sbbproduit.stock, $sbbproduit.visu, $sbbfrs.frsid, $sbbfrs.societe FROM $sbbproduit, $sbbfrs WHERE $sbbproduit.frsid= $sbbfrs.frsid AND $sbbproduit.id='$id'"); //$row = mysql_fetch_row($result) or die('Erreur SQL !<br />'.$result.'<br />'.mysql_error()); /********************* La liste des variables que je vais forcer ************************/ $row=array("1","1","1","lenom","12,50","lorem ipsum dolors et tutti quanti","../images1.jpg","0","1","15","120","","1","Tintouin","","","","","","",""); $devises=""; ?> </head> <body><table width="100%" border="0"> <tr><?php //affichage du produit séléctionné avec bouton commande : /*********** LE CODE INITIAL *********************/ /* if ($row[6] != "nul") { $split = explode("../", $row[6]); $row[6] = $split[1]; $img = "<img src=$row[6] width='120' height='120' target='blank'>"; $image2 = "<a href='$row[6]' target='blank'><font class='moyen'>Photo taille réelle</font></a><br>"; } else { $img = "<img src=\"$images/na.jpg\" width=100 border=0>"; } echo "<td colspan='2'>$img</a><br>$image2</td>";*/ /**********FIN : LE CODE INITIAL *********************/ // on vérifie que la variable est renseignée if ($row[6] != "nul") { // on adapte la valeur au chemin du site !!! $split = explode("../", $row[6]); // on attribue la nouvelle valeur à la variable $row[6] = $split[1]; // on a la variable, mais as-t'on réellement une image ?? if(file_exists($row[6])){ $img = "<img src=$row[6] width='120' height='120' target='blank'>"; $image2 = "<a href='$row[6]' target='blank'><font class='moyen'>Photo taille réelle</font></a><br>"; } else { $img=""; //$img = "<img src=\"$images/na.jpg\" width=100 border=0>"; // enlever les commentaires et adapter le chemin $image2 = "Désolé, pas de photos"; } } // on ferme la boucle conditionnelle générale ?> <td colspan='2'><?php echo $img."<br>".$image2 ?></td> </tr> <tr><?php $nom = $row[3]; ?> <td valign="top"><font class="moyen"><b>Article : </b></font></td> <td><font class='moyen'><?php echo $nom; ?></font></td></tr> <tr> <td valign="top"><font class="moyen"><b>Descriptif : </b></font></td> <?php $descriptif = $row[5]; ?> <!--$descriptif = str_replace("[retour]","<br>",$descriptif); $descriptif = str_replace("[gras]","<b>",$descriptif); $descriptif = str_replace("[/gras]","</b>",$descriptif);--> <td><font class='moyen'><?php echo $descriptif; ?></font></td></tr> <tr> <td valign="top"></td> <td></td> </tr> <?php $fraisproduit1 = $row[7]; $fraisproduit2 = sprintf("%0.2f", $fraisproduit1); ?> <tr> <td valign="top"><font class="moyen"><b>Frais :</b></font></td> <td><font class='moyen'><?php echo $fraisproduit2." ". $devises; ?></font></td></tr> <tr> <td valign="top"><font class="moyen"><b>Prix TTC : </b></font></td> <?php $price = $row[9]; $price = sprintf("%0.2f", $price); $totalgeneral1 = ($price + $fraisproduit2); $totalgeneral2 = sprintf("%0.2f", $totalgeneral1); echo "<td><font class='moyen' color=red><b>$price $devises TTC</font></b></td>"; echo "<tr><td><font class='moyen'><b>Total TTC :</b></font></td>"; echo "<td><font class='moyen'><b>$totalgeneral2 $devises</b></font></td>"; ?></tr> <?php if ($row[10] == "oui") { echo "</tr><tr>"; echo "<td><font color=\"red\">Article non disponible</font></td>"; } if ($row[8] == "oui") { $ancienprix = $row[4]; $ancienprix = sprintf("%0.2f", $ancienprix); echo "</tr><tr><td><font class='moyen'><b>Prix public : </b></font></td>"; echo "<td><font class='moyen'><b>$ancienprix $devises TTC</b></font></td>"; } $gain = ($row[9] - $row[4]); $gain = sprintf("%0.2f", $gain); ?> <tr> <td valign="top"><font class="moyen"><b>Economie réalisée : </b></font></td> <?php echo "<td><font class='moyen'><b>$gain $devises</b></font></td>"; ?></tr> <?php $fournisseur = $row[13]; ?> <tr> <td valign="top"><font class="moyen"><b>Fournisseur : </b></font></td> <?php echo "<td><font class='moyen'><b>$fournisseur</b></font></td>"; ?></tr> </table> Ce formulaire génère le lien qui reprend toutes les variables et va au traitement<br> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get"> <b>Quantité :</b> <input type="text" name="qte" value="<?php echo isset($_GET['qte'])?$_GET['qte']:'1';?>" size="3" > <input type="image" name="image" value="ok" align="absmiddle" border="0" height="35" width="35"> <input type="button" value="ok" border="0" height="35" width="35"> </form> <?php if (isset($_GET['qte'])) { $qte = $_GET['qte']; ?> <a href="panier.php?action=ajout&l=<?php echo $nom; ?>&f=<?php echo $fournisseur; ?>&q=<?php echo $qte; ?>&p=<?php echo $price; ?>&g=<?php echo $gain; ?>" >AJOUTER</a> <?php } ?><br> Ce formulaire capte la valeur "quantité" et la transmet au formulaire suivant, qui contient les variables en champs cachés<br> <b>Quantité :</b> <input type="text" name="Oqte" id="Oqte" value="<?php echo isset($_GET['qte'])?$_GET['qte']:'1';?>" size="3" > <input type="image" name="image" value="ok" align="absmiddle" border="0" height="35" width="35" onclick="document.getElementById('Cqte').value=document.getElementById('Oqte').value"> on va vers : paniertemp.php <?php if ($_SESSION['qte']!=""){$qte=$_SESSION['qte']; $linfo=" <-- ceci est la valeur du choix précédent";}else { $linfo=""; $qte="1"; } ?> <form action="paniertemp.php" method="POST" > <b>Quantité :</b> <input type="text" name="Cqte" id="Cqte" value="<?php echo $qte ?>" size="3" /><?php echo $linfo ?> <input type="hidden" name="l" value="<?php echo $nom; ?>" /> <input type="hidden" name="f" value="<?php echo $fournisseur; ?>" /> <input type="hidden" name="p" value="<?php echo $price; ?>" /> <input type="hidden" name="g" value="<?php echo $gain; ?>" /> <input type="hidden" name="v" value ="<?php echo $_SERVER['PHP_SELF'];?>" /> <input type="button" value="ok" border="0" ><input type="image" name="image" value="ok" align="absmiddle" border="0" height="35" width="35"> </form> </body> </html>
et la page paniertemp.php
<?php if(!isset($_SESSION)){ session_start();} ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <?php $nom = $_POST['l']; $fournisseur = $_POST['f']; $qte = $_POST['Cqte']; $price = $_POST['p']; $gain = $_POST['g']; $vientde= $_POST['v']; ?> <script language="JavaScript"> function doRedirect() { redirectUrl = "<?php echo $vientde; ?>"; setTimeout( "window.location.href = redirectUrl", 1000); } </script> </head> <body onLoad="doRedirect()"> <?php echo "les valeurs de renseigne de la forme NAME... sont : "; // un controle pour voir les POST envoyés /* foreach($_POST as $cle => $valeur) { echo $cle.": ".$valeur." <br /> "; } */ ?> ici vous pouvez traiter ces valeurs -> session, connexion base de données ... <?php $_SESSION['nom']=$nom; $_SESSION['founisseur']=$fournisseur; $_SESSION['qte']=$qte; $_SESSION['price']=$price; $_SESSION['gain']=$gain; ?> <?php echo $nom; ?><br /> <?php echo $fournisseur; ?><br /> <?php echo $qte; ?><br /> <?php echo $price; ?><br /> <?php echo $gain; ?> <br /> puis nous allons retrouner d'où l'on vient ! </body> </html>
Bon courage