Je bloque sur mon code PHP... Merci!

Eric -  
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je bloque sur mon code... J'ai beau chercher sur le web, mais je ne trouve pas.

Je souhaite faire un sélecteur de devise sur mon site web.

Un "dropdown" avec : cad, eur, usd, etc.

Donc, si CAD est sélectionner, la variable $dev1 est = à X$.

Je souhaite faire en sorte que les devises changent, sans avoir à "envoyer" le formulaire (contenant seulement le select box).

Voici mon petit code, pourtant simple, mais il me manque, comment faire pour envoyer les données du selectbox sans appuyer sur un bouton "envoyer".

<?php

if ($_POST['devise'] == "eur"){
$dev1 = "1eur";
} else {
$dev1 = "3,25$";
}

?>

<SELECT name="devise">
<OPTION VALUE="cad">CAD</OPTION>
<OPTION VALUE="eur">EUR</OPTION>
</SELECT>

<?php echo $dev1 ?>

Si quelqu'un pourrait m'aider, merci beaucoup!

A voir également:

8 réponses

Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Salut,
Si tu veux quelque chose en "temps réel" sans aucune action sur un bouton il te faut alors passer du côté de Javascript (Jquery).
Avec notamment la fonction :
https://api.jquery.com/click/
Exemple :
$(document).ready(function(){	
$("#cad").click(function() {
  alert('tu as séléctionné CAD');
});
});

et ton code html serait :
<SELECT name="devise">
<OPTION id="cad" VALUE="cad">CAD</OPTION>
<OPTION id="eur" VALUE="eur">EUR</OPTION>
</SELECT> 

A améliorer c'est sur mais juste voir si je suis sur la bonne piste ;) on appronfondira
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonjour,

Une solution sans votre IF. On utilise un tableau (array) associant clé-valeur comme ceci:

<?php 
$listeDevises = array( 
    '1eur' => 'EUR', 
    '3,25$' => 'CAD', 
); 
?> 
<form method="POST" action="exemple6.php"/> 
    <select name="devise"> 
    <?php foreach($listeDevises AS $value => $option): ?> 
        <option value="<?php echo $value; ?>"><?php echo $option; ?></option> 
    <?php endforeach; ?> 
    </select> 
    <input type="submit" value="OK"/> 
</form> 
<?php echo $_POST['devise']; ?> 


PS: j'ai appelé ce script exemple6.php

A+
un +1 sur mes commentaires - si vous avez apprécié - c'est gentil, merci.
0
Eric
 
Merci à vous deux,

J'aime bien vos deux proposition.

@Melooo : Je n'arrive pas à intégrer le jquery, je ne comprend pas trop comment cela fonctionne même avec la doc sur le site.

@mpmp93 : Ça marche super, je pourrais me contacter de quelque chose comme cela. Sauf que, exemple, si "CAD" est sélectionné, plusieurs valeurs doivent changer.

Merci
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Salut !
Ben t'as besoin que ton forumulaire soit envoyé automatiquement a partir de ton PC, et qui dit execution sur PC, dit javascript !
Tu peux utiliser la solution de Melooo, en intégrant la biblio de jQuery !
Sinon !

<?php 
$devises = array( 
   'euro'=>'1€', 
   'usd'=>'3,25$' 
  ); 
?> 

<script> 
function recharger(value) { 
 window.location.replace(window.location.pathname+'?dev='+value); 
} 
</script> 

<form method="get" action="#"> 
 <select name="dev" onchange="recharger(this.value);"> 
  <?php 
   foreach($devises AS $id => $value) { 
    if($id == $_GET['dev']) echo '<option value="'.$id.'" selected>'.$value.'</option>'; 
    else echo '<option value="'.$id.'">'.$value.'</option>'; 
   } 
  ?> 
 </select> 
<form>

Mettez en résolu quand c'est résolu -.- ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Eric
 
Super ça, on est dans la bonne direction.

Je souhaite avoir plusieurs prix sur mon site, donc plusieurs echo :

<?php echo $dev1; ?>
<?php echo $dev2; ?>

Les prix changent selon la devise choisi.

Merci ;)
0
Eric
 
On peu faire le même code, mais avec des conditions?

Si CAD est sélectionné, $dev1 = 3$, $dev2 = 5$...

Si EUR est sélectionné, $dev1 = 3E, $dev2 = 5E...

Parce que j'aimerais inclure un cookie dans ma condition ou une session pour enregistrer la devise choisi.
0
Eric
 
Bon, au cas ou ça intéresserait quelqu'un, j'en suis arrivé à quelque chose de bien.

<?php

$devises = $_POST['devise'];

if ($devises == "eur"){
$dev1 = "2 E";
$dev2 = "3 E";
} else {
$dev1 = "3,25$";
$dev2 = "4,25$";
}

?>


<form method="post" action="#">
<select name="devise">
<option value="cad">CAD</option>
<option value="eur">EUR</option>
</select>
<input name="submit" type="submit" value="OK" />
<form>
<br /><br />
<?php echo $dev1; ?>
<br /><br />
<?php echo $dev2; ?>

Il va seulement me manquer de faire l'envoie automatique.
0
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   228
 
Hmmm, j'ai pas vraiment saisi ce que tu cherche a faire !
0
Eric
 
J'ai réussis avec :

onchange='submit()'

Merci à vous tous.
0