Rrécupérer une valeur d'un select en PHP dans la même page avant submit

zack77 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai créé un formulaire en php avec " select option" j'aimerais récupérer la valeur sélectionnée du formulaire et la placer dans la valeur name='montant"
<input name="montant" value="?">

j'aimerais également placé la valeur sélectionnée dans l'URL

"client.php?amount=10 " par "client.php?amount=la valeur sélectionnée"


J'ai trouvé des informations sur $.ajax() / JQUERY mais je ne sais pas comment procéder. Les forum que j'ai trouvés semblent s'adresser aux expérimentés. Merci d'avance de partager vos savoirs.


Voici mon formulaire:

<form action="/member/transfet.php" method="post" target="_top">
<input type="hidden" name="return" value="<?php echo "http://".$_SERVER['HTTP_HOST'].""?>/member/client.php?amount=10&token2=<?php echo "".$token_paiment.""?>&status=success&id=<?php echo "".$numero1s.""?>">
<input type="hidden" name="montant" value="">
<select name="os0">
<option value="10">10€</option>
<option value="20">20€</option>
</select> 
<input type="button"  value="Valider" name="submit" >
</form>

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tu dois utiliser l'évènement "change" sur ton select pour déclencher du code javascript lorsqu'un utilisateur modifie la valeur de ton select.
https://www.w3schools.com/jsref/event_onchange.asp

Ensuite, plutôt que de cibler ton input montant par son "name", en javascript il est plus facile de travailler sur des ID. je t'invite donc à ajouter un attribut "id" à ton input.
Il sera alors facile de modifier sa "value"
https://www.w3schools.com/jsref/prop_text_value.asp

Pour ce qui est de modifier ( ou ajouter) un paramètre dans l'url, tu peux t'inspirer de la réponse donnée ici :
https://forums.commentcamarche.net/forum/affich-36774173-modifier-url#3

.
0
zack77 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai réussi à trouver comment mettre l'information sélectionné dans <input text >

voici le code que j'ai trouvé mais par contre je n'ai pas pu trouver la méthode pour remplacer
amount=10 par amount=l'élément sélectionné

<!DOCTYPE html>
<html>
<head>
<!-- En-tête de la page -->
<meta charset="utf-8" />
<title>Paypal integration</title>
<head>

<script>
function dd1select()
{
  var d=document.getElementById("ddselect");
  var displaytext=d.options[d.selectedIndex].text;
  document.getElementById("txtvalue").value=displaytext;
 }
</script>
</head>
<body>


<center>
<form method='post' action="transfert.php">
<!--<input type="hidden" id="txtvalue" name='text' >--->
<input type="text" id="txtvalue" name="return" value="<?php echo "http://".$_SERVER['HTTP_HOST'].""?>/member/client.php?amount=10">
<select id="ddselect" onchange="dd1select();">
  <option value="Value1">Select combo</option>
  <option value="10">10€</option>
<option value="20">20€</option>
</select>
<input type="submit" name="envoyer" value="Valider">
</form>


</center>
</body>

</html>


Je vous remercie d'avance de votre aide.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Pourquoi indiques tu l'url directement dans le champ value de ton champ txtvalue ??

Pourquoi ne pas le faire dans le fichier transfert.php une fois que tu auras fais le "submit" de ton formulaire ?

Et dans le champ txtvalue, il suffit de mettre la VALUE que tu as choisi dans ton SELECT ..
Et d'ailleurs.. pourquoi passer par un champ intermédiaire et ne pas utiliser directement ton SELECT ??

En gros,
<form method='post' action="transfert.php">

<select id="ddselect" name="return">
  <option value="Value1">Select combo</option>
  <option value="10">10€</option>
<option value="20">20€</option>
</select>
<input type="submit" name="envoyer" value="Valider">
</form>

et dans le fichier
<?php
// fichier : transfert.php
$return = !empty($_POST['return']) ? $_POST['return'] : NULL;
$url = "http://" . $_SERVER['HTTP_HOST'] . "/member/client.php?amount=" . $return ;



Enfin bon, si tu tiens à le faire quand même à ta sauce, et donc via javascript, regarde sur internet comment on concatène des variables et du texte ( des string) en Javascript ... il n'y a rien de plus simple.
0