Probleme avec une liste deroulante dynamique [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
10 juillet 2008
-
Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
-
Bonjour
J'ai un formulaire avec une liste déroulante qui a ete rempli a partir d'une base de donnée mysql, et j'ai du mal a recupérer la valeur saisit ,"la recuperer dans une variable".
La variable recuperée va servir pour une autre requéte et le resultat de cette va etre affiché dans une zone texte.
j'ai essayé  avec $_post[] ca marche pas.merci.   
A voir également:

9 réponses

Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
2
Je vais peut-être répondre à côté de la plaque mais je vais essayer que non.
Donc au début tu interroges ta base (admettons que tu ne sélectionnes qu'une seule colonne dans ta requête).

Partons du principe que dans ton code le "form" est déjà défini et le "select" aussi.

Ensuite tu fetch ton résultat autant de fois que nécessaire avec un compteur nommé $i. La valeur récupérée sera donc $row[$i].
donc à chaque fois tu vas créer une option sous cette forme:
echo '<option value="'.$row[$i].'">'.$row[$i].'</option>
';

si ton select s'appelle "selection" ta variable $_GET['selection'] ou $_POST['selection'] aura pour valeur le $row[$i] selectionné.

Au pire si ça ne marche pas, essaye pour voir s'il n'y a pas un autre problème, tu crées un champ texte nommé "resultat", tu rajoutes à "selection" un évènement onchange="javascript:test();"

Puis une fonction javascript :
function test()
{
document.forms[0].elements['resultat'].value = document.forms[0].elements['selection'].value;
}

Logiquement le champ texte devrait récupérer la valeur sélectionnée dna sla liste puis lors de la validation (que tu peux forcer dans ton javascript par un document.forms[0].submit();) ta variable $_GET['resultat'] ou $_POST['resultat'] devrait avoir la bonne valeur parce que sinon c'est pas possible.

ou alors autre solution avant de valider le formulaire tu peux donner pour valeur à résultat la valeur document.forms[0].elements['selection'].text ou document.forms[0].elements['selection'][document.forms[0].elements['selection'].selectedIndex].text] je ne rappelle plus.

Bonne chance
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Je suis pas sûr d'avoir tout bien saisi, mais...
T'as essayé avec $_POST (en majuscules) ?

Sinon, si je suis à côté de la plaque, faudrait expliquer un peu plus ce que tu fais, ce que tu veux faire, ce qu'il se passe...
Messages postés
9
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
10 juillet 2008

Salut ,
Oui je l'ai utilisé en majuscule.
Voila la liste deroulante est rempli a partir d'une base.et j'aimerai recuperer la valeur choisi dans la liste dans une variable. 
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

print_r($_POST);

pour savoir quel est l'index a mettre...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
9
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
10 juillet 2008

Merci beaucoup je vai essayer.
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
4
salut:

<html>
<head>
<script type= "text/javascript">
function envoyer(){
document.forme.listeval.value=document.forme.liste.value;
}
</script>
</head>

<form method ="post" action= " dest.php " onSubmit ="envoyer()" name= "forme">

<select name="liste">
  <option>val1</option>
  <option>val2</option>
  <option>val3</option>
  <option>val4</option>
</select>

</form>

</html>
------------------------------------------
et dans la page dest.php tu met
<?php
echo $_POST['listeval'];
?>

------------
avant le submit du form en stocke la valeur  de la liste dans un hidden, et puis le formulaire se submit, et la valeur choisie serai bien stocké dans le nom du hidden
<hr size ="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
Messages postés
9
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
10 juillet 2008

Merci les gars j'ai trouvé la solution
c tout simplement avec le
$Ma_variable=$_POSTE["ma liste"];
Ca ne marchait pas a cause d'autre chose.
Messages postés
15
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
28 septembre 2007

slut les gars!
j'ai une petite remarque  le_totophe:
"que tu peux forcer dans ton javascript par un document.forms[0].submit();) "
comment tu peux dire au serveur que tu veux un submit pour actualiser la page et non pas pour executer le code de bouton (envoyer)???
merci pour ta Rép :)
Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
2
Pour [auteurdetail.aspx?ID=1038961 stefh]:

> comment tu peux dire au serveur que tu veux un submit pour actualiser
la page et non pas pour
> executer le code de bouton (envoyer)???

Déjà au serveur tu lui dis rien; PHP est interprêté par le serveur, mais là c'est du JavaScript qui est donc interprêté par le navigateur (si JavaScript est activé).

Bon on va un peu déborder du cadre de phpcs.com mais c'est pas grave (je pense)...

Pour faire ce que tu veux, tu as 2 solutions, une sale et une propre.

<li>La sale tout d'abord: tu crees une fonction JavaScript que tu appelles admettons recharge(). Dans la balise <form> tu ajoutes onSubmit="return recharge();" Ta fonction recharge() recharge alors la page et retourne faux ('return false;') donc tu as rechargé ta page et le formulaire n'est pas envoyé. Tu auras perdu les saisies lors du rechargement. ou tu retournes vrai et le formulaire est envoyé.
</li><li>Solution propre: tu ne mets pas de mais dans ta balise tu rajoutes onClick="javascript: recharge();" on se fout alors de la valeur de retour. Dans la fonction recharge() if(condition vraie) { document.forms[x].submit(); } else { //On recharge la page }
</li>Voilà j'espère que ça sera bon pour toi. Pour recharger une page, je ne me souviens plus exactement du code, y a un truc avec document.location mais je ne l'ai plus en tête.