Aller au contenu

Dedtronchin

Membre
  • Compteur de contenus

    2
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par Dedtronchin

  1. 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
  2. Patricia il se fait tard et je ne serai peut être pas très clair ... Tout d'abord je ne vois qu'un seul formulaire dans ton code, je ne comprends donc pas bien ta question. Ensuite tu as un double quote de mal placé dans ton lien de retour : <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; ?> onclick= window.open(this.href, '', 'toolbar="no " location="no " directories="no " status="yes " scrollbars="yes " resizable="yes " copyhistory="no " width="600 " height="350'); return false;"</a> il faut écrire : guillemet avant onclick, s'interroger sur la présence de return false qui n'est attaché à aucune fonction <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; ?>" onclick= window.open(this.href, '', 'toolbar="no " location="no " directories="no " status="yes " scrollbars="yes " resizable="yes " copyhistory="no " width="600 " height="350'); ></a> Maintenant quant à la logique de ton processus; tu disposes de plusieurs outils : le javascript, la redirection,les sessions, l'ajax, les champs cachés. la solution javascript : transférer la variable par java script: a l'ancienne du type : document.form[X].element.value=document.form[y].element.value ici X et Y étant la position des formulaires dans l'ordre d'appartion : 0,1,2 etc. element étant le nom du champ de formulaire concerné. à la DOM en appelant la fonction GetElementByid : document.GetElementById('chose').value = document.GetElementById('qte').value ce transfert doit s'opérer sur un déclenchement javascript, ici cela pourrait être un: onblur(document.form[.....); placé dans le champ "qte", si le visiteur est censé le remplir. la redirection tu fais un aller retour sur ta page via une page intermèdiaire. page1 vers PageTemp où la variable sera traitée et renvoyée à la page1 par une redirection A l'arrivée une boucle conditionnelle permute les affichages. les sessions C'est le complément du jeu expliqué au dessus qui en soit était un peu bête, mais plus rusé si la PageTemp à instancier la session('qte') qui deviendra la valeur à intègrer dans le deuxième formulaire que je n'ai pas vu ,hihihi l'ajax La c'est pour faire super W2bees. mais imaginons que ton deuxième formulaire (le fantôme bouhhhh) soit prévu dans un div nommé. tu envoies ta quantité en post via le process Ajax et tu lui demandes en retour de te mettre ton joli formulaire fantôme dans le div prévu à cet effet. Après à toi de t'amuser avec les déclenchements d'événements sur les div retournés par Ajax Champ cachés Reste la vraie solution des fainéants, notre magique champ caché. et là ta réponse serait du style: <form action="paniertemp.php" method="GET" > <b>Quantité :</b> <input type="text" name="qte" value="1" size="3" /> <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="image" value="ok" src="images/panier_bleu_plein.png" align="absmiddle" border="0" height="35" width="35"> </form> et dans le gentil fichier paniertemp.php de réception tu déclenches la pop-up (on est en quelle année ????) et tu rediriges sur la page de ton choix. Voilà ce que je peux en dire à cette heure tardive. Un petit conseil cherche des sources un peu plus actuelles, pop up et compagnies sont remplacés par les DIV, la fonction innerHTML('lediv') qui permet de modifier le contenu d'un calque à la volée, ici ton panier, en javascript direct ou via ajax Bon courage
×
×
  • Créer...