Formulaire php > liste déroulante avec autorafraichissement. [Résolu]

Messages postés
78
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
- - Dernière réponse : cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
- 31 mai 2005 à 17:28
bonjour à tous.

J'ai créé une liste déroulant du genre :



prix de votre panier pour 3 articles : 30 ?



Et dès que je change le nombre d'articles, je voudrais que la page se
rafraichisse et mette le bon prix. Le pti probleme c'est que je suis
une quiche lorraine et je vous mets mon bout de code si ça peut me
rassurer :



<form name="form1" method="post" action="">


prix de votre panier pour
<select name="select" class="Style1">

<option value="3" selected>3</option>

<option value="4">4</option>

<option value="5">5</option>


</select>articles : et c'est là que je
chie, comment faire 'selected"*10 ????

</form>



Je ne sais meme pas récupérer la variable sélectionnée , il faut mettre quoi pour dire "récupère l'info sélectionnée dans le menu déroulant".

Merci beaucoup.
Afficher la suite 

15 réponses

Meilleure réponse
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
3
Merci
Ouais, sinon ca :



<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">


Prix de votre panier pour <select
name="select" onchange="this.form.submit();">


<option value="0" <?php echo $select= (isset ($_POST['select'])
&& $_POST['select'] === '0' ? 'selected="selected"' : '');
?>> </option>


<option value="1" <?php echo $select= (isset ($_POST['select'])
&& $_POST['select'] === '1' ? 'selected="selected"' : '');
?>>1</option>


<option value="2" <?php echo $select= (isset ($_POST['select'])
&& $_POST['select'] === '2' ? 'selected="selected"' : '');
?>>2</option>


<option value="3" <?php echo $select= (isset ($_POST['select'])
&& $_POST['select'] === '3' ? 'selected="selected"' : '');
?>>3</option>


</select> article(s) : <?php echo
$prix= (isset ($_POST['select']) ? $_POST['select'] * 10 : '0');?>
&euro;

</form>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 129 internautes nous ont dit merci ce mois-ci

Commenter la réponse de malalam
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Hello,



Il faut utiliser du javascript : evenement onchange sur ta balise
select, qui va dire quelquechose comme : onchange="this.form.submit();"

Puis dans ton span :



...article(s) : <?php $nombre = (isset ($_POST['select']) ? $_POST['select'] : '0')?> ...
Commenter la réponse de malalam
Messages postés
78
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
0
Merci
Oki, merci beaucoup je viens d'essayer, ça marche. Le seul truc qui chie encore un peu, c'est que la page se rafraichit mais elle affiche toujours par défaut la première valeur de ma liste, c'est à dire que je me retrouve avec :
prix de votre panier pour 1 article(s) : 30 ?
ou
prix de votre panier pour 1 article(s) : 60 ?
ou
prix de votre panier pour 1 article(s) : 90 ?
etc...

Alors que sous le 1 il y a un liste avec tous les choix. Le résultat est bon, mais l'affichage est mauvais, est-ce que je me fais bien comprendre.

Y a-t'il moyen de corriger cette erreur qui est un peu inquiétante.

merci
Commenter la réponse de tynmar
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Non pas vraiment lol...montre ton code en entier stp (enfin cette
partie uniquement evidemment, mais la il semble qu'il n'y ait pas tout).



Ce ne serait pas ton selected le probleme...? Si, je viens de piger lol...

Il faut que tu changes le selected aussi en fonction du nombre choisis
par l'utilisateur precedemment, avec exactement le meme principe, sauf
que tu vas devoir placer le selected au bon endroit.

selected devrait etre : selected="selected" au passage.

Tu peux aussi tricher ...



ta liste c'est ca : [] avec une valeur par defaut disons 1 : [1]



donc



[1] Prix actuel de votre panier pour /un isset pour afficher le nombre d'articles/ : /isset pour le prix/
Commenter la réponse de malalam
Messages postés
78
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
0
Merci
<form name="nbredpi" method="post" action="">
Prix de votre panier pour <select name="select" class="Style1" onChange="this.form.submit();">
<option value="select">1</option>
<option value="300">2</option>
<option value="600">3</option>
</select>article(s) <? $leprix = (isset ($_POST['select']) ? $_POST['select'] : '0');
echo($leprix*10); ?>
</form>

J'ai pas trop pigé ton dernier post malalam. je dois etre un pti peu débile. désolé. Non en fait je n'y connais rien.
Commenter la réponse de tynmar
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
lol c'est pas grave...

moi je ne pige pas les valeurs de tes options ? 300, 600 ok...mais select ?

On reprend :

dans quoi recuperes-tu le nombre d'articles ? Et dans quoi recuperes-tu le prix en fonction du nombre d'articles ?
Commenter la réponse de malalam
Messages postés
78
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
0
Merci
oki, j'ai fait une couille sur le code que je viens de poster. Disons pour le fond, j'ai pris le 1er exmple qui m'est venu. J'ai un article qui coute 10? et je veux pouvoir en commander jusqu'à 3 (par exemple). donc ça ferait ça

Prix de votre panier pour 1 article(s) : 10 ? (1 article = 10?)
2
3 //C'est mon menu déroulant ça

Et dès que je clique sur 3, je veux voir ça :

Prix de votre panier pour 3 article(s) : 30? (1 article = 10?)
et non pas (ce que j'ai pour l'instant) :
Prix de votre panier pour 1 article(s) : 30? (1 article = 10?)

Voila mon le code que j'ai réellement (je m'étai planté avant) :

<form name="nbredpi" method="post" action="">
Prix de votre panier pour <select name="select" class="Style1" onChange="this.form.submit();">
<option value="select">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>article(s) <? $leprix = (isset ($_POST['select']) ? $_POST['select'] : '0');
echo($leprix*10); ?>
</form>

J'espère que que vous cernez bien mon problème actuel.
Commenter la réponse de tynmar
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Ca vient, ca vient... ;-)



<form name="nbredpi" method="post" action="">


Prix de votre panier
pour <select name="select" class="Style1"
onChange="this.form.submit();">

<option value="0">aucun</option>

<option value="1">1</option>

<option value="2">2</option>

<option value="3">3</option>


</select>Choix : <? $articles=
(isset ($_POST['select']) ? $_POST['select'] : '0');?>article(s) : <? $prix=
(isset ($_POST['select']) ? $_POST['select'] * 10 : '0');?> &euro;

</form>



La, c'est la solution de la flemme...Ca te convient, ou tu veux
vraiment que le nombre d'articles vienne de la liste deroulante ? (bref
que soit selectionne par defaut le dernier choix de l'utilisateur, ou
'aucun' si il n'a pas encore fait de choix)
Commenter la réponse de malalam
Messages postés
78
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
0
Merci
heeuuummm. Je ne veux pas te vexer ni rien du tout qui puisse te montre en colère, mais c'est ce que j'avais déjà. Sauf que tu as remplacé le 1 par aucun. Et c'est vrai que vis a vis du client, c'est pas top. Je préfère la solution du casse couille qui sera bien, plutot que la flemme qui risquede recevoir des reflexions de la part des clients. Tu comprends ?

Merci beaucoup quand meme. Si tu as la solution que je recherche, ça serait avec grand plaisir. Merci beaucoup. (en tout cas je sais pas si ca existe).
Commenter la réponse de tynmar
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
0
Merci
Salut,



perso pour faire un truc de ce genre je passerai plus par les XMLHTTP
requests, vu que tu dois utiliser du Javascript de toutes façons.



Un très bon article : http://www.toutjavascript.com/savoir/xmlhttprequest.php3



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
0
Merci
aie (enfin j'aime pas ça fait crade à l'affichage) ^^

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Bah suis d'accord mais j'ai rien trouve de mieux la (puis faut que je
bosse a cote lol...c'est pas evident) rapidement, uniquement en php.
Commenter la réponse de malalam
Messages postés
78
Date d'inscription
vendredi 8 octobre 2004
Statut
Membre
Dernière intervention
28 février 2006
0
Merci
De la grosse balle atomique de fou ! Merci beaucoup mec !!! Ca le fait, et puis c'est pas crade !!

merci merci merci !!
Commenter la réponse de tynmar
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
si si c'est crade lol...
Commenter la réponse de malalam
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
0
Merci
tynmar > on se comprend avec Malalam lol t'inquiète

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro