Formulaire php

Fermé
laurent - 17 juil. 2003 à 10:09
 Utilisateur anonyme - 19 juil. 2007 à 11:05
Je tiens a precisé que je suis débutant en php!

La question est la suivante :
J'ai 1 liste déroulante alimentée par une base de données et j'aimerai récupérer la valeur sélectionnée en php et je sais pas trop comment faire ???
Si quelqu'un sait ...

8 réponses

tu souhaites récupérer la valeur sélectionnée dans ta liste déroulante :
la méthode :
tu as ta liste : <select name=liste> ... </select>
tu crés une fonction selection() que tu places dans la methode onchange de select : <select name=liste onchange="selection()">...
dans ta fonction selection() tu as :
<script>
function selection() {
// tu récupéres la valeur
val=document.form.liste.options[document.form.liste.selectedIndex].value
// tu fais ce que tu veux de val ensuite
}
</script>

voila c'est tout
A@++
0
Merci
Mais on peut pas le faire en php, en utilisant $_POST['Nom_Select'] ????
0
J'ai testé ce ke tu m'as donné mais ça ne fonctionne pas ça doit être a cause des valeurs :
val=document.form.liste.options[document.form.liste.selectedIndex].value

A quoi correspond liste et pour form est ce que je mets le nom ? Si tu pouvais apporter plus de précisions merci
0
tu peux le faire en php, tu récupéres simplement la valeur du nom de ta liste comme tu le ferais pour un champs text.
$_POST["liste"] ou autre nom

sinon form c'est le nom du formulaire
et liste le nom de ta liste déroulante
0
laurent > Nico
17 juil. 2003 à 11:14
Je viens de tester avec ta premiere suggestion mais ca marche pas
j'ai ma liste et j'ai un bouton pour valider et lorsque l'on clique sur le bouton j'appelle la méthode, en gros ca donne :
<input type="button" name="Submit" value="Valider" onClick="javascript:selection();">
et la méthode selection :
function selection(){
// on récupére la valeur
alert("methode selection");
val = document.myform.Libelle.options[document.myform.Libelle.selectedIndex].value;
alert("la valeur est : "+val);
}
j'ai ajouté des "alert" pour vérifier parceke ca ne marchait pas

En fait quand j'excéute le programme : lorsque je clique sur le bouton ca me donne rien, il n'y a meme pas les fenetres alert et je sais pas pourquoi ???
0
laurent > laurent
17 juil. 2003 à 11:20
Oublies ce que j'ai noté juste avant, je viens de le faire en php et ça marche. MErci

Sinon j'ai une autre question
j'ai changé le boutn valider en un submit et quand je clique sur un élément de la liste déroulante, puis sur le bouton : il me réaffiche la page mais il perds ou il était cad que après dans la liste j'ai pour élément selectionné le premier élément. c'est kom si je ne l'avait pas choisit mais ca c'est a l'affichage parceke dans le programme c'est bon. Mais kom c'est un produit destiné a un client j'aimerai savoir s'il est possible de garder a l'affichage le choix selectionne avant d'avoir appuyé sur le bouton ???
0
Désolé camarade, mais fallait manger.
comment garder ta sélection apres validation ?
tout d'abord, ta liste est elle statique ou vient elle d'une base de données.
0
elle vient d'une base de données
mais ca me fait ca avec d'autres elements de ma page .
Par exemple, j'ai un champ texte dans lequel on saisit une valeur et on valide avec un bouton de type submit. Quand je clique sur ce bouton valider la valeur saisie disparaît
et ca me fait la même chose avec cette liste déroulante, ...
voilà
0
J'ai deux soluces :
en javascript :
<html>
<body>
Votre choix : <? echo $liste ?>
<br>

<form name=frm>
<select name=liste>
<option value=c1>choix1
<option value=c2 >choix2
<option value=c3>choix3
<option value=c4>choix4
</select>
<input type=submit value="ok">
<script>
for(i=0;i<document.frm.liste.options.length;i++) {

if(document.frm.liste.options[i].value=="<? echo $liste ?>") document.frm.liste.options[i].selected=true
}
</script>
</form>
</body>

</html>

en php :
qd tu construis ta liste grace à ta base, et bien tu testes chaque élément de ta base. Ainsi qd l'élement de ta base correspond à ta sélection tu fais un echo "selected".
ex:
<select name=liste>
<?
while($line=mysql_fetch_row$rs)) {
/// lecture de ta base
if($line[0]=='$liste') echo "<option value=".$line[0]." selected>".$line[0];
else echo "<option value=".$line[0]." >".$line[0];
}
?>
</select>

voila
0
Oui merci, mais lis le dernier msg ke g ecrit ca répond pas réellement a ce ke je veux, les différentes valeurs de la liste déroulante s'affiche y a pas de problème par contre kan tu choisis une valeur t'as un curseur qui pointe sur la valeur saisie et kan tu cliques sur le bouton le curseur perd son information cad la valeur choisie auparavant mais ca c'est a l'affichage et je sais pas pourquoi c'est kom si j'avais fait un refresh
0
<input type=text name=val value="<? echo $_POST['val'] ?>">

tu récupéres sa valeur, si elle est vire y a rien sinon sa valeur
voila
0
ok ca marche
mais avec une liste déroulante, tu fais ca comment ?
0

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

Posez votre question
je te l'ai indiqué ci-dessus dans "j'ai deux soluces ...."
0
Bonjour,
est-ce kil est possible de le faire avec des frames parceke dans mon bureau c ce kon m'a conseillé ?
0
Bonjour!!!!!!!
j'ai un formulaire en php mais j'arrive pas à récupérer les données venant du champ de texte mais aussi aussi à partir du choix avec la case à cocher.
En effet il crée l'enregistrement dans la base de données mais avec des valeurs égales à zéro.
0
Bonjour Nico

Dans ton code :

<select name=liste>
<?
while($line=mysql_fetch_row$rs)) {
/// lecture de ta base
if($line[0]=='$liste') echo "<option value=".$line[0]." selected>".$line[0];
else echo "<option value=".$line[0]." >".$line[0];
}
?>
</select>

tu mets quoi dans $liste stp?? Car je voudrais qu'après validation de l'élément dans ma lite déroulante, mon choix reste sélectionné. Merci
0
Utilisateur anonyme
19 juil. 2007 à 11:05
Bonjour Nico

Dans ton code :

<select name=liste>
<?
while($line=mysql_fetch_row$rs)) {
/// lecture de ta base
if($line[0]=='$liste') echo "<option value=".$line[0]." selected>".$line[0];
else echo "<option value=".$line[0]." >".$line[0];
}
?>
</select>

tu mets quoi dans $liste stp??
0