Aller au contenu

changement du total a partir d'une liste


gontran

Sujets conseillés

bonjour,

j'ai un léger probleme.

je suis en cours de réalisation d'un site de vente de vin.

j'ai donc réalisé mon catalogue ainsi que la page "ajouter au panier"

le probleme que je rencontre est le suivant :

http://cmonweb.net/vin/add_cart.php?id=9

sur cette page je voudrais que lorsqu'on modifie la quantitée ca me renvoi sur une page qui racalcule le total ttc.

je vous joins le code de mes 2 fonctions

function add_cart (){

$idurl=$_GET['id'];
$query02='select * from vin where id="'.$idurl.'" ';
$queryvin=mysql_query($query02);
$donnees02=mysql_fetch_array($queryvin);
 //définition des variables
 $couleur=$donnees02['couleur'];
 $prix=$donnees02['prix'];
 $mill=$donnees02['millesime'];
 $chato=$donnees02['chato'];
 $appelation=$donnees02['appelation'];
 $photo=$donnees02['photo'];
 //affichage des resultats de la rqt
 echo '<div class="liste">';
 echo '<div class="image">';
 echo '<img src='.$photo.'>';
 echo '</div>';
 echo '<p>Nom du domaine :</p>';
 echo '<h2>'.$chato.'</h2>';
 echo '<p> </p>';
 echo '<p>Millésime : '.$mill.'</p>';
 echo '<p>Appélation : '.$appelation.'</p>';
 echo '<p>Prix : '.$prix.' </p>';
 echo '<p> </p>';
 echo '<form name="quantite" method="POST" action="">';
 echo '<p>Quantitée : <select name="quantite"  onchange="calcul_total_ttc ();">
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
     <option value="4">4</option>
     <option value="5">5</option>
     <option value="6">6</option>
     <option value="7">7</option>
     <option value="8">8</option>
     <option value="9">9</option>
     </select>
     en bouteille.</p>';
 echo '</form>';
 echo '<p> </p>';
 echo '<p>Total TTC : '.$prix.' </p>';
 echo '</div>';
 }

FONCTION DE CALCUL PAR RAPPORT A LA QUANTITE

function calcul_total_ttc (){
$quantiteurl=$_POST['quantite'];
$idurl=$_GET['id'];
$query02='select * from vin where id="'.$idurl.'" ';
$queryvin=mysql_query($query02);
$donnees02=mysql_fetch_array($queryvin);
 //définition des variables
 $couleur=$donnees02['couleur'];
 $prix=$donnees02['prix'];
 $mill=$donnees02['millesime'];
 $chato=$donnees02['chato'];
 $appelation=$donnees02['appelation'];
 $photo=$donnees02['photo'];
 $quantite=$donnees02['prix'] * $quantiteurl;
 //affichage des resultats de la rqt
 echo '<div class="liste">';
 echo '<div class="image">';
 echo '<img src='.$photo.'>';
 echo '</div>';
 echo '<p>Nom du domaine :</p>';
 echo '<h2>'.$chato.'</h2>';
 echo '<p> </p>';
 echo '<p>Millésime : '.$mill.'</p>';
 echo '<p>Appélation : '.$appelation.'</p>';
 echo '<p>Prix : '.$prix.' </p>';
 echo '<p> </p>';
 echo '<form name="quantite">';
 echo '<p>Quantitée : <select name="quantite" onChange="calcul_total_ttc ();">
    <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
     <option value="4">4</option>
     <option value="5">5</option>
     <option value="6">6</option>
     <option value="7">7</option>
     <option value="8">8</option>
     <option value="9">9</option>
    </select> en bouteille.</p>';
 echo '</form>';
 echo '<p> </p>';
 echo '<p>Total TTC : '.$quantite.' </p>';
 echo '</div>';
 }

alors j'ai donc essayer l'etat "onChange" sur ma balise "select" mais rien ne se passe.

pourriez vous me donner une explication

par avance merci.

pour info l'adresse du site :

www.cmonweb.net/vin/add_cart.php?id=9

Modifié par gontran
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Comme je n'ai pas de réponse pour ce post, je me demande si j'ai été assez explicite ??

Dite le moi et je ferai en sorte de compléter ma requete.

Merci

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

deja 1) code ca en javascript plutot qu'en PHP, le ONCHANGE lance une fonction javascript.

2) tu utilises une méthode POST alors que ta fonction doit aller chercher le nombre selectionné, le multiplier par le prix unitaire et modifier le contenu d'une div....et que cette fonction soit lancée par le ONCHANGE de ta selectbox...

bon courage

Lien vers le commentaire
Partager sur d’autres sites

En ce qui me concerne je suis un peu dérouté par l'ergonomie de ton panier.

Je laisse les specialistes de php te répondre sur le plan de ton code, mais (si je peux me permettre) le fonctionnement de ton panier n'est pas très habituel.

En général la sélection des quantités se fait dès la page liste de produits, ainsi que sur la fiche détaillée d'un produit.

Donc tu as (habituellement) un bouton "ajouter au panier" qui poste la quantité sur le module panier.

C'est au niveau de ce module que tu peux modifier les quantités : donc tu as un bouton "recalculer le panier" qui va reposter la page pour mettre à jour soit une variable de session soit une table (panier persistant).

Est-ce que c'est cela que tu souhaites faire ou autre chose ?

Peux-tu nous en dire plus à ce sujet ?

<edit> Suite au post de bshop, si tu veux reposter une page en javascript :

onChange="location=document.nom_formulaire.nom_selectbox.options[document.nom_formula

re.nom_selectbox.selectedIndex].value;"

les valeurs des options de ta selectbox sont des URL relatives avec en variables...tout ce dont tu as besoin.

bon courage!

<edit>

Lien vers le commentaire
Partager sur d’autres sites

Oui je veux faire un panier persistant de 15 jours

Ta remarque au niveau de l'endroit ou l'on choisi la quantitée est pertinante.

Je n'y avais pas pensé.

Par contre je ne voudrais pas passer par un bouton "recalculer le panier"

Je voudrais que dés que l'internaute a choisi la quantité à partir de la liste ca le bascule vers la page qui a recalculer le prix par rapport à la quantité sélectionnée.

Merci

Modifié par gontran
Lien vers le commentaire
Partager sur d’autres sites

Oui je veux faire un panier persistant de 15 jours

<{POST_SNAPBACK}>

Donc tu enregistres le panier dans une table, un peu comme s'il s'agissait d'une commande, sauf qu'elle est ouverte et non pas fermée.

Attention, c'est un sujet complexe, car une quantité qui était disponible au moment de la constitution du panier peut ne plus l'être.

Le délai de livraison peut aussi avoir changé.

Le compte du client peut avoir évolué (tarifs, etc...)

C'est le problème classique de la "non-répudiation" en e-commerce : il y a des conséquences techniques à bien estimer avant de se lancer.

Au niveau juridique, la question des commandes dites "ouvertes" peut aussi se poser.A voir dans tes conditions de ventes, jusqu'où va la possibilité de modification - et de refus d'une commande avec des reliquats livrés en retard.

Par contre je ne voudrais pas passer par un bouton "recalculer le panier"

Je voudrais que dés que l'internaute a choisi la quantité à partir de la liste ca le bascule vers la page qui a recalculer le prix par rapport à la quantité sélectionnée.

Merci

<{POST_SNAPBACK}>

Donc c'est bien le javascript dont on t'a parlé:

onChange="location=document.nom_formulaire.nom_selectbox.options[document.nom_formula

re.nom_selectbox.selectedIndex].value;"

les valeurs des options de ta selectbox = URL de la page panier avec en variables...tout ce dont tu as besoin.

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Bonjour,

onChange="location=document.nom_formulaire.nom_selectbox.options[document.nom_formula

re.nom_selectbox.selectedIndex].value;"

Pourrais-tu m'expliquer un peu cette fonction. ?

Me faut-il un petit programme en JavaScript pour que cette fonction puisse fonctionner ?

Merci

Modifié par gontran
Lien vers le commentaire
Partager sur d’autres sites

Non, ce n'est pas nécessaire.

L'évènement onChange déclenche le rechargement de la page, avec comme URL la valeur de l'option sélectionnée.

Si tu souhaites que la navigation mène à une page "panier", l'URL ressemblera à

monpanier.php?variable1=...&variable2=...

A toi de générer les différentes options à partir de ta base de données.

par exemple , variable1=quantité, variable2=ID_produit, etc...

ex:

<select name="nom_selectbox" onChange="location=document.nom_formulaire.nom_selectbox.options[document.nom_formula

re.nom_selectbox.selectedIndex].value;" >

<option value="monpanier.php?variable1=...&variable2=...>1</option>

</select>

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

OK

Je comprend mieux.

Je vais aller voir ce que ca donne de suite.

Tu as bien une balise <form> au dessus de la balise <select> ?

Merci

Modifié par gontran
Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

Je vous montre ma fonction :

function list_couleur (){
$couleururl=$_GET['couleur'];
$querry_couleur=mysql_query("SELECT id, appelation, chato, millesime, photo, prix from vin WHERE couleur='$couleururl' ORDER BY chato ASC");
 while ($couleur=mysql_fetch_array($querry_couleur)){
 $id=$couleur['id'];
 $appelation=$couleur['appelation'];
 $prix=$couleur['prix'];
 $mill=$couleur['millesime'];
 $chato=$couleur['chato'];
 $photo=$couleur['photo'];
 
 //affichage des resultats de la rqt
 echo '<div class="liste">';
 echo '<div class="image">';
 echo '<img src='.$photo.'>';
 echo '</div>';
 echo '<p>Nom du domaine :</p>';
 echo '<h2>'.$chato.'</h2>';
 echo '<p> </p>';
 echo '<p>Millésime : '.$mill.'</p>';
 echo '<p>Appélation : '.$appelation.'</p>';
 echo '<p>Prix : '.$prix.' </p>';
 echo '<p> </p>';
 echo '<form name="form1" id="form1">';
 echo '<p><select name="quantite" onChange="location=../add_cart.php?id='.$couleur['id']&quantite=quantite.value">
        <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=1">1</option>
         <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=2">2</option>
            <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=3">3</option>
    <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=4">4</option>
         <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=5">5</option>
            <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=6">6</option>
    <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=7">7</option>
         <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=8">8</option>
            <option value="../caddie/add_cart.php?id='.$couleur['id'].'&quantite=9">9</option>
     </select></p>';
 echo '</form>';
 echo '<p> </p>';
 echo '<p><a href="../caddie/add_cart.php?id='.$couleur['id'].'" title="'.$couleur['chato'].'"> Ajouter au panier</a></p>';
 echo '</div>';
 }//fin du while
 
}//fin de la fonction

Cette fonction doit me renvoyer sur la page add_cart.php

Elle me recalcule le prix total.

En l'état ca ne fais rien du tout a je bloque.

Comment faire.

Merci

Modifié par gontran
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...