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

JavaScript Discussion :

Calcul dans Boutique virtuelle


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 28
    Points : 28
    Points
    28
    Par défaut Calcul dans Boutique virtuelle
    Bonjour à tous,

    Voilà j'aimerais créer une boutique virtuelle et j'ai quelques problèmes. En fait je me connecte à une base de données pour chercher mes objets (nom, prix unitaire) et puis je les affiche : je créer une zone de saisie contenant le nombre d'objet que l'utilisateur veut acheter pour chaque objet et deux boutons permettant d'augmenter ou de réduire ce nombre. Ces deux boutons se connectent à deux fonctions toutes bêtes en Javascript.

    Mon problème c'est que à la fin j'aimerais marquer, dynamiquement, l'argent qu'il faut dépenser et l'argent qui reste à l'utilisateur mais je n'y arrive pas.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <html>
    <head>
    <script language="JavaScript">
    function Inc(champ) // Augmentation du nombre d'unités
    {	
    		champ.value++;
    }
    function Dec(champ) // Diminution du nombre d'unités (avec test si < à 0)
    {
    	champ.value--;
     
    	if(champ.value<0)
    	{
    		champ.value=0;
    		alert("Pas moins que 0");
    	}
    }
    </script>
    </head>
    <body>
    <form action="" method="POST">
    <table>
    <?php
    mysql_connect("localhost","root",""); // Connexion BDD
    mysql_select_db("toutou");
    $query = "SELECT * FROM objets";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result))
    {
    	$nom = $row['nom']; // Nom de l'objet
    	$prix_unit = $row['prix']; // PU de l'objet
    	echo "<tr><td>$nom</td><td><input type='text' name='$nom' value='0' /> (x$prix_unit)</td>
    	<td><input type='button' onclick='Inc($row[nom])' value='^' /></td>
    	<td><input type='button' onclick='Dec($row[nom])' value='v' /></td></tr>
    	<input type='hidden' name='prix_$nom' value='$prix_unit' />";
    }
    echo "
    </table>
    <input type='submit' name='acheter' value='Acheter' />
    </form>
    </body>
    </html>
    ";
    Pour l'instant est-ce bon ?

    Merci beaucoup

    Au revoir

    Topheur

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Points : 91
    Points
    91
    Par défaut
    tu ajoutes un champ total dans ton formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='text' name='total_$apayer' value='$prix_unit' />";
    et dans tes fonctions Inc et Dec tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function Inc(champ) // Augmentation du nombre d'unités
    {	
    		champ.value++;
                             total_$apayer.value=prix_unit*champ.value;
    }
    function Dec(champ) // Diminution du nombre d'unités (avec test si < à 0)
    {
    		if(champ.value>1)
    	{
    		 champ.value--;
    	              total_$apayer.value=prix_unit*champ.value;
     
     
    	}
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 28
    Points : 28
    Points
    28
    Par défaut Nouveau code pour ma boutique virtuelle
    Bonjour à tous

    J'ai modifié mon code mais j'ai un gros souci : en fait, quand on augmente le nombre d'unités d'un produit, l'argent diminue (normal !). Mais si ça ne tombe pas juste : exemple, j'ai 300 euros et j'achete des produits dont le cout unitaire est de 200 et bien l'argent ne tombe pas à zéro mais en négatif -> je peux monter le nombre de produits à 2 et mon argent sera de -100 !!! Mais si ça tombe juste c'est nikel !

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <html>
    <head>
    <script language="javascript">
    function calcul(op,champ,total,argent)
    {
    	var a=0;
    	var somme=0;
    	var diff=0;
    	var money=500;
     
    	if(op=="add")
    		champ.value++;
    	if(op=="sub" && champ.value > 0)
    		champ.value--;
     
    	for(a;a<=2;a++)
    	{
    		somme += parseInt(document.getElementById(a).value) * parseInt(document.getElementById(a+1).value);
    		diff = money-somme;
    		if(diff < 0)
    		{
    			champ.value--;
    			somme = parseInt(document.getElementById(champ.id).value) * parseInt(document.getElementById(champ.id).value);
    			diff = money-somme;
    		}
     
     
    		total.value=somme;
    		argent.value=diff;
    		a++;
    	}
    }
    </script>
    <style>
    input
    {
    	border:thin;
    }
    </style>
    </head>
    <body>
    <form action="" method="POST">
    <table>
    <tr><td>Os (12): </td><td><input type="text" name="os" id="0" value="0" readonly /></td>
    <td><input type="button" value="+" onclick="calcul('add',os,total,argent)" /></td>
    <td><input type="button" value="-" onclick="calcul('sub',os,total,argent)" /></td></tr>
    <input type="hidden" name="prix_os" value="12" id="1"/>
     
    <tr><td>Collier (22): </td><td><input type="text" name="fouet" id="2" value="0" /></td>
    <td><input type="button" value="+" onclick="calcul('add',fouet,total,argent)" /></td>
    <td><input type="button" value="-" onclick="calcul('sub',fouet,total,argent)" /></td></tr>
    <input type="hidden" name="prix_fouet" value="22" id="3"/>
    <tr><td>Co&ucirc;t (en Euro) : </td><td><input type="text" name="total" value="0" /></td></tr>
    <tr><td>Argent (en Euro) :</td><td><input type="text" name="argent" value="500"/></td></tr></table>
    </form>
     
    </body>
    </html>
    Vous pouvez m'aider ? Merci beaucoup

    Au revoir

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Points : 233
    Points
    233
    Par défaut
    la fonction math.round() devrait te sortir de cette galère

    Elle te donne tous les operateurs de cette lib spéciale calcul

Discussions similaires

  1. LIBPQ - Affichage requete dans table virtuelle
    Par Mike@Nestor dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/07/2005, 14h11
  2. Calcul dans un triggers : problème du +
    Par eXiaNazaire dans le forum Oracle
    Réponses: 3
    Dernier message: 07/01/2005, 10h14
  3. Recuperer un champ calculé dans une variable....
    Par vijeo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/12/2004, 14h57
  4. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09
  5. calcul dans une requête
    Par blaz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/12/2003, 10h31

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