Récupérer donnée liste menu pour un calcul [Résolu/Fermé]

Signaler
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
-
jojonux
Messages postés
21
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
11 septembre 2009
-
Bonjour,

Je suis en train de créer pour la première fois un formulaire de commande pour un livre et j'ai beaucoup de mal ;-).
Le choix de la quantité de livres se fait via un menu déroulant (j'ai fait ça parce que c'est limité à 9) et les données sont récupérées dans une table mysql (pacre qu'après je voudrai afficher les fais de port en fonction de la quantité choisie).
Mais je n'arrive pas à récupérer la quantité choisie pour calculer le montant à payer parce qu'en fait j'aimerai que le calcul se fasse tout de suite dès qu'il sélectionne une quantité, sans qu'on ait besoin d'un bouton submit...

J'espère que c'est à peu près claire...

Est-ce que quelqu'un aurait la gentillesse de m'aider ?

Merci d'avance !

5 réponses

Messages postés
21
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
11 septembre 2009

Bonsoir A.Finot,

Si vous n'avez pas encore résolu votre probleme je vous propose le code suivant:
Ce script vous permettra de calculer et d'afficher le prix sur la meme page, dés que le client aura selectionné la quantité . Lorsque le client valide la quantité la page est rechargé avec la valeur saisie, et vous pouvez ainsi afficcher le prix, rapidement sur la meme page.
Cette methode a l'avantage de se passer de Javascript.
N'hesitez pas a poser des questions si le besoin s'en fait sentir, ou si vous voulez vraiment ne pas avoir a cliquer sur un bouton :)


<?php

// Recuperation de la valeur selectionne par l'utilisateur
// dans le menu deroulant.
//------------------------------------------------------
if(isset($_POST['select_quantite'])){

//apres le test de saisie de la quantite vous pouvez mettre vos calculs
// par exemple un echo de la valeur saisie :
$quantite = $_POST['select_quantite'];
echo "Quantite selectionnee".$quantite."<br>" ;
}




/* ******************************************************
* Votre code
***************************************************** */
?>
<HTML>
<HEAD>
<TITLE>un_titre_de_page</TITLE>
</HEAD>
<BODY>
<!-- action doit etre vide pour que la page soit recharger -->
<FORM action="" method="POST">

<!-- liste deroulante-->
<SELECT name="select_quantite" size="1">
<?php
for($i=1;$i<10;$i++){
echo "<option value='".$i."'>".$i."</option>" ;
}
?>
<INPUT type="submit" value="calculer" >
</SELECT>
<!-- **************** -->

</FORM>

<BODY>
</HTML>
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
2
Merci bcp Jojonux,

C'est très gentil d'avoir pris le temps de tout bien m'expliquer comme vous l'avez fait !

J'ai essayé quelques trucs par rapport à ce que vous m'avez envoyé mais aucun résultat concluant...

J'ai un unique formulaire (en POST) qui contient trois tableaux : les coordonnées de la personne, le bon de commande et une zonne de texte pour les messages.
Lorsque la personne valide sa commande toutes ces données sont enregistrées dans une table, envoyées par mail et la personne est redirigée vers la paiement. J'ai peur qu'en indiquant " " à action ça ne s'enregistre plus dans ma base, non ?
Du coup, mon problème, c'est qu'il faut que mon calcul se fasse tout seul, juste au choix d'un numéro dans la liste déroulante, sans bouton submit... et vu que mon formulaire fait pas mal de chose déjà il commence à devenir un peu trop complexe pour moi... j'ai du mal à m'y retrouver et je ne sais plus trop où mettre les choses, d'autant plus que c'est la première fois que j'essaie de faire un tableau avec des formules de calcul... !

Peut-être auriez-vous besoin de mon code... mais il est très long !!!? Voici déjà juste ma balise form :

<form action="<?php echo $editFormAction; ?>" name="contacts" id="contacts" method="POST">
<table width="610" border="0" align="center" cellpadding="0" cellspacing="0" id="coordonnees">
<tr>
<td height="27" colspan="4"><h1>Vos coordonnées</h1></td>
</tr>
<tr>
<td height="27" colspan="4"><p>
<label>
<input name="sexe" type="radio" id="sexe_0" value="Madame" checked="checked" />
Mme</label>
<label>
<input type="radio" name="sexe" value="Mademoiselle" id="sexe_1" />
Mlle</label>
<label>
<input type="radio" name="sexe" value="Monsieur" id="sexe_2" />
M.</label>
<br />
</p></td>
</tr>
<tr>
<td width="95" height="27"><p>*Nom :
</p></td>
<td width="169"><input name="nom" type="text" id="nom" size="20" /></td>
<td width="174">*Prénom : </td>
<td width="132"><input name="prenom" type="text" id="prenom" size="20" /></td>
</tr>
<tr>
<td><p>*Adresse :
</p></td>
<td><input name="adresse" type="text" id="adresse" size="20" /></td>
<td> Pays : </td>
<td><input name="pays" type="text" id="pays" value="France" size="20" /></td>
</tr>
<tr>
<td><p>*Code postal :
</p></td>
<td><input name="cp" type="text" id="cp" size="10" /></td>
<td>*Ville : </td>
<td><input name="ville" type="text" id="ville" size="20" /></td>
</tr>
<tr>
<td>*Email : </td>
<td><input name="email" type="text" id="email" size="20" /></td>
<td>*Mobile : </td>
<td><input name="tel" type="text" id="tel" size="20" /></td>
</tr>
<tr>
<td> Index : </td>
<td><input name="index" type="text" id="index" size="5" /></td>
<td><p>Si vous n'êtes pas classé, merci de nous indiquer votre niveau :

</p></td>
<td><select name="niveau" id="niveau">
<option value="Classé">Classé</option>
<option value="Non initié">Non initié</option>
<option value="Débutant">Débutant</option>
<option value="Carte verte">Carte verte</option>
<option value="Moyen">Moyen</option>
</select></td>
</tr>
<tr>
<td colspan="4"> <h2>* champs obligatoires</h2></td>
</tr>
<tr>
<td colspan="2"><h2> </h2></td>
<td colspan="2"> </td>
</tr>
</table>
<table width="570" border="1" id="commande">
<tr>
<td colspan="4"><h1>Votre commande</h1></td>
</tr>
<tr>
<td width="306"><h3>Article</h3></td>
<td width="56"><h3>Quantité</h3></td>
<td width="102"><h3>Prix Unitaire H.T</h3></td>
<td width="78"><h3>Total H.T</h3></td>
</tr>
<tr>
<td>Livre - remise de 5%</td>
<td><label>
<select name="quantite" id="quantite">
<?php
do {
?>
<option value="<?php echo $row_rsTarifs['quantite']?>"><?php echo $row_rsTarifs['quantite']?></option>
<?php
} while ($row_rsTarifs = mysql_fetch_assoc($rsTarifs));
$rows = mysql_num_rows($rsTarifs);
if($rows > 0) {
mysql_data_seek($rsTarifs, 0);
$row_rsTarifs = mysql_fetch_assoc($rsTarifs);
}
?>
</select>
</label></td>
<td><label>
35,93 euros</label></td>
<td><label>
<input name="prixht" type="text" id="prixht" value="<?php echo $_POST['quantite']*35.93; ?>" size="15" />
euros</label></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>TOTAL H.T</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>TVA 5,5%</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Frais de port France Métropolitaine</td>
<td>1</td>
<td>7,00 euros</td>
<td>Offert</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="3">Net à payer TTC</td>
<td> </td>
</tr>
</table>
<table width="570">
<tr>
<td colspan="2">Commentaires :<br />
<textarea name="commentaires2" id="commentaires2" cols="60" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2"><input name="offrespartenaires" type="checkbox" id="offrespartenaires" value="oui" checked="checked" />
<em>Oui, je souhaite recevoir les offres des partenaires commerciaux </em></td>
</tr>
<tr>
<td><input type="hidden" name="ID" id="ID" />
* champs obligatoires</td>
<td> </td>
</tr>
<tr>
<td><input type="hidden" name="MM_insert" value="contacts" /></td>
<td><input type="submit" name="envoyer" id="envoyer" value="Validez votre commande" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</form>
Messages postés
21
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
11 septembre 2009

Je vais regarder un peu tout ça et je vous tiens au courrant.

Bonne journée :)
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
2
Merci beaucoup ! :-)
Messages postés
21
Date d'inscription
jeudi 10 septembre 2009
Statut
Membre
Dernière intervention
11 septembre 2009

Finalement je vous met un petit bout de javascript pour votre cas, vous n'aurez plus qu'a l'adapter a votre code:

<html>
<head>
</head>
<body>

<script type="text/javascript">
function calcul()
{
document.getElementById("total").value=
parseFloat( document.getElementById("quantite").value)*
parseFloat( document.getElementById("prixu").value);
}
</script>

<input type="text" name="quantite" id="quantite">
<input type="text" name="prixu" id="prixu">
<input type="text" name="total" id="total">
<input type="button" onclick="calcul();" value="*"><br>

</body>
</html>

Bonne journée :)