Modification du prix selon le choix des options via ajax

Eléphant du PHP | 331 Messages

27 juil. 2009, 02:45

Bonjour,

J'ai un client qui fait des chapeaux en fourrures il a différent modèle de chapeaux mais chaque modèle est disponible dans différent choix de fourrures, de tissus et de grandeur

Et le prix varie selon l'option choisie.

se que j'ai pensé faire est de mettre un prix de base avec option de base et dans ma liste déroulante a coté des option la différence de prix serait écrite (Ex.; Fourrures: Renard +50$ , loup marin +60$ ) (Ex.: Tissues: Molleton, +10$, cuir +25$) (Idem pour les grandeur)


J'ai partie du tutoriel suivant qui fait afficher le contenu d'un select

http://www.w3schools.com/PHP/php_ajax_database.asp

Je réussi a faire la somme du prix de base + le prix de un des select mais dépendemment des produit il y aura de 2 a 5 select

Je veux faire la somme du prix de base + tous les select

voici ma pâge de test:

http://www.fourruresrobertson.com/produ ... orie_id=25

Voici le code appelé par ajax;
<?php
session_start();
$q=$_GET["q"];
include("config.php");
include("fonctions.php");
$page_fr="francais.php";
$page_en="english.php";
choix_langues($page_fr,$page_en);
//echo $_SESSION["produit_id_ajax"];
$c = @mysql_connect($host,$login,$password);
@mysql_select_db($db,$c);



		$sql="SELECT * FROM produits where id=".$_SESSION["produit_id_ajax"]."";
		$result = mysql_query($sql);
		$row = mysql_fetch_array($result);
//-----------------------------------------------------------------------------------
		$sql5="SELECT * FROM produits_attributs_details where id_produit=".$_SESSION["produit_id_ajax"]." and id_attribut_details=".$q."";
		$result5 = mysql_query($sql5);
		$row5 = mysql_fetch_array($result5);
//-----------------------------------------------------------------------------------
$prix=$row["prix"]+$row5["prix"];
//echo $prix;
//$_SESSION["image_attribut"]=$row5["image"];

	echo "<TABLE CELLPADDING=0 CELLSPACING=0><TR><TD class=\"border\">\n";

	echo "<TR><TD><b>".panier_7." </b>: <b>".$prix." $</b></TD></TR>";
	echo "</TABLE>\n";
?>
Le code de mon formulaire de la page d'achat de produit;
$sql2="SELECT * FROM produits_attributs where id_produit=".$products["id"]." order by id_attribut";

	$result2 = mysql_query($sql2);

	echo "<table cellpadding=\"0\" width=\"100%\" cellspacing=\"0\">\n";

	while($row = mysql_fetch_array($result2))

	{

		$sql3="SELECT * FROM attributs_produits where id=".$row["id_attribut"]."";

		$result3 = mysql_query($sql3);

		$row3 = mysql_fetch_array($result3);

	

		echo "<tr>\n";

		echo "<td valign=\"top\" class=\"texte\"><table><tr><td><b>".$row3["nom_".$_SESSION["lang"].""]." :</b></td></tr>\n";

		echo "<tr><td><input type=\"hidden\" name=\"attribut_".$row["id_attribut"]."\" value=\"".$row["id_attribut"]."\"><input name=\"choix_attribut[]\" type=\"hidden\" value=\"".$row["id_attribut"]."\">\n";

		$sql5="SELECT * FROM produits_attributs_details where id_produit=".$products["id"]." and id_attribut=".$row["id_attribut"]." order by id_attribut";

		$result5 = mysql_query($sql5);

		$nb1=mysql_num_rows($result5);

		if($nb1>1)

		{

		//-----------------------------------------------------------

		echo "<select name='attribut_details_".$row["id_attribut"]."' onchange=\"showUser2(this.value)\">\n";

		echo "<option value=\"0\">".panier_74."</option>\n";

	

		while($row5 = mysql_fetch_array($result5))

		{

		

			$sql4=mysql_query("select * from attributs_produits_details where id=".$row5["id_attribut_details"]." order by id asc") or die("Impossible d'ouvrir la table");

			while ($row4=mysql_fetch_array($sql4))

			{

				echo "<option value=\"".$row4["id"]."\">".$row4["id"]." ".stripslashes($row4["nom_".$_SESSION["lang"].""]).""; 

				if($row5["prix"] <> "")

				{

					echo "&nbsp;&nbsp;&nbsp;&nbsp;+ ".$row5["prix"]." $";

				}

				echo "</option>\n";

			}

		}

		echo "</select><BR><BR>\n";

		//-------------------------------------------------------------

		}
Pouvez-vous m'aider svp?

Merci

Petit nouveau ! | 7 Messages

22 août 2009, 23:34

Bonjour,

Vous arrivez visiblement à récupérer la valeur des select vu que le calcul fonctionne... Il vous reste a récupérer tout le tableau des valeurs et plus seulement les champs remplis. Il faudarit peut-être modifier la fonction showUser2 ? en tout cas la solution se trouve dans le javascript. et il faudra surement modifier le code appelée par ajax pour que la requete fonctionne avec tous les ids...
Utilisez-vous Jquery ou autre ?