IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème avec le prix que je dois appliquer


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut Problème avec le prix que je dois appliquer
    Bonjour,

    Dans mon site je gère un ensemble de produit.
    Pour un produit, j'ai 2 options de prix : prix pour les membres du sites et prix pour les non membres. Pour ces 2 options, on applique une réduction en cas d'achat de + de 5 exemplaires.

    J'ai créé 2 boutons radio affichant les options : membre & non membre de la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $result_option = mysql_query("SELECT CdeOption,prixTTC,`option`,PrixUnitReduit,SeuilReduction FROM
    prixoffre, offres WHERE offres.nom LIKE 'Hors série' AND prixoffre.CdeOffre = offres.CdeOffre",$connect_db);
     
    while($row_option = mysql_fetch_array($result_option))
     {
        echo'<input type="radio" name="option" value="'.$row_option
               ["CdeOption"].'" class="option" />&nbsp;&nbsp;'.$row_option["option"].'<br />';
     }
    Ensuite, je dois calculer le montant dû au client. Pour ce faire, je dois connaître le prix à appliquer, la quantité est saisie par le client.

    pour ce faire, j'ai pensé à créer un champs caché "prix" qui a comme valeur le prix qu'il faut multiplier avec la quantite. j'ai créé également 2 champs caché dans la boucle précédente : 1 champs contient le prix unitaire, le 2ème champs contient le prix a appliquer en cas de réduction.

    Mon code est devenu comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while($row_option = mysql_fetch_array($result_option))
     {
       echo'<input type="radio" name="option" value="'.$row_option["CdeOption"].'" class="option"'; 
     if($modif) 
      {	
        echo(($option==$row_option["option"]) ? " checked=\"checked\"": null); 
      }
        echo '&nbsp;&nbsp;'.$row_option["option"].'<br />';
    echo'<input name="prixTTC['.$row_option["CdeOption"].']" type="text" id="prixTTC" value="'.$row_option["prixTTC"].'" />';
     
    echo'<input name="prixReduit['.$row_option["CdeOption"].']" type="text" id="prixReduit" value="'.$row_option["PrixUnitReduit"].'" />';
    }
    Pour calculer le montant du, j'ai créé la fonction javascript suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function operation(val1, val2) {
         return val1 * val2; 
    }
    cette fonction je l'appel dans le champs quantité comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    onblur="document.test5.montant.value = 
    operation(document.test5.quantite.value, document.test5.prix.value)"
    Le problème que j'ai et que je n'arrive pas a choisir le bon prix, j'ai mis ce petit code à l'evenement Onclick des boutons radio :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo'<input type="radio" name="option" value="'.$row_option["CdeOption"].'" class="option"'; 
    echo(($option==$row_option["option"]) ? " checked=\"checked\"": null); 
    						 }
    echo' onClick="document.test5.prix.value=document.test5.prixTTC[this.value]}.value"/>';
    mais ca me donner erreur javascript. Je pense que Javascript ne reconnaît pas le tableau Php. je sais pas si j'ai été clair. Si vous avez besoin de + de clarification, posez-moi des questions. Merci

  2. #2
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    pour ce faire, j'ai pensé à créer un champs caché "prix" qui a comme valeur le prix qu'il faut multiplier avec la quantite. j'ai créé également 2 champs caché dans la boucle précédente : 1 champs contient le prix unitaire, le 2ème champs contient le prix a appliquer en cas de réduction.
    je ne sais pas ce qui tu cherches à vendre mais j'adorais connaitre le site où tu le fais

    plus serieusement, abondonne cette idée de suite. il suffit de recuperer la quantité désirée de produit, tu identifies si c'est un membre ou pas (surement en passant par la base de données ou des variables à la milite), tu recuperes les prix normal et reduits tjs de ta base de données et ensuite un tout petit algo fera l'affaire.

    Mais alors tes champs hidden, oublie!

    EDIT : bon pour cette fois voila l'algo que tu cherches, il suffit de l'adapter en php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    si membre
      si quantité > 5
        prix = quantité * prix réduit pour membre;
      sinon
        prix = quantité * prix normal pour membre;
    sinon
      si quantité > 5
        prix = quantité * prix réduit pour non membre;
      sinon
        prix = quantité * prix normal pour non membre;
    bein la il suffit d'avoir les 4 données:
    prix normal pour membre
    prix réduit pour membre (+ 5 articles)
    prix normal pour non membre
    prix réduit pour non membre (+ 5 articles)

    bon courage

  3. #3
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Merci pour ta réponse
    sinon ce que tu m'a proposé est correcte mais jepense pas que ca va me servir pour afficher le montant sans valider le formulaire. Je veux que lorsque je saisit la quantité é je défini le type du client (membre ou pas membre) j'affiche le montant dans un champs. ALors comment puis-je procéder??,

  4. #4
    Membre régulier Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Points : 94
    Points
    94
    Par défaut
    Bonjour,
    Alors j'ai pensé a faire un formualire sur 2 pages avec transaction.
    l'idée consiste à faire dans la première page, les informations du clients plus la quantité qu'il veut acheter. Dans la 2ème page, je metterai le montant après son calcul, et la date du paiement et mode de paiement... et après lorsqu'il valide, je vais stocker le tout dans la base de données.

    Que pensez-vous de cette solution et est ce Php gère les transactions??? Merci

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/06/2014, 17h11
  2. Problème avec schéma autre que public
    Par sarah59 dans le forum Extensions
    Réponses: 7
    Dernier message: 28/05/2013, 12h52
  3. [MySQL] problémes de champ automatique que je dois utiliser dans la forme
    Par elyakhlifi dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 08/12/2010, 16h16
  4. Probléme avec une fonction que j'ai créé.
    Par yann123456 dans le forum Langage
    Réponses: 6
    Dernier message: 06/02/2009, 16h05
  5. Problèmes avec des nombres... que faire ?
    Par sducos81 dans le forum C++
    Réponses: 6
    Dernier message: 21/07/2005, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo