[php / html] Récupérer 2 variables par select

Résolu/Fermé
Kopros
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
- 17 févr. 2009 à 21:18
 dada26 - 13 déc. 2009 à 21:57
Bonsoir,

J'aimerais faire un truc en html/php, je sais même pas si c'est possible.

Je fais un select tout bête, dans une boucle en php. L'intérêt de la boucle est de récupérer toutes les valeurs dans une base de données pour les mettre en valeurs dans les balises <option> du select.

Le truc c'est que je voudrais également récupérer l'id de chaque valeur.
Comment faire ?
Est-ce qu'on peut mettre une variable qui se met à jour sur la même page que le select ?
Est-ce qu'on peut faire un genre de "double select" , avec un select caché et pas l'autre ?

Merci pour vos réponse.


J'ai trouvé ça en cherchant un peu, mais j'y comprends rien :
https://codes-sources.commentcamarche.net/

6 réponses

lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353
17 févr. 2009 à 22:58
ben tu fait fait un truc comme ça (dsl je vais etre rapide ce soir)
<form action="page_recup.php" method="post">
<select name="nom">
la tu fait une boucle while qui te recupere tt tes enregistrements de ta BD du style while($res)
{
echo'option value="'. $id_recupere_dans_ta_requete.'"><"'.$nom_recupere_dans_ra_requete."'> </option>';
</select>
}
ensuite dans ta page page_recup.php tu recupere l'id choisi simplement en faisant un $id=$_post['nom'];

je file au dodo je te laisse creuser le probleme
4
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353
18 févr. 2009 à 05:08
de rien avec plaisir ;-)
3
Bonsoir,

Ayant un probleme similaire, je me permet de reprendre l'exemple ci-dessus afin de vous demander si il est possible de recuperer le $nom en meme temps que le $id ?
0
Kopros
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
86
17 févr. 2009 à 23:25
Génial ça marche !
Un grand merci à toi qui m'as appris ce truc, malgré la fatigue !


Voici la synthaxe correcte, dans la page de saisie :

echo "<form action=\"test.php\" method=\"post\">";

$champs=mysql_query("select * from categ");
while ($donnee=mysql_fetch_array($champs))
{
$id2=$donnee['id_categ'];
$cat2=$donnee['catego'];
echo "
<select name=\"nom\">
<option value=\"". $id2."\">".$cat2."
</select>
";
}
echo "<input type=submit value=\"ok\">
</form>";


Et dans la page de traitement :

$id=$_POST['nom'];


Encore merci Lewis :-)
2
Kopros
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
86
18 févr. 2009 à 09:39
Je viens juste de tilter, mon code ne va pas.

Il ne faut pas mettre le <select> dans la boucle while !
La balise d'ouverture doit être juste avant, et celle qui ferme juste après.

Voilà pour la rectification.
1

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

Posez votre question
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353
17 févr. 2009 à 22:27
tu veut faire quoi exactement ?

par exemple tu a un select et lorsqu'on fait un choix en fonction du choix un autre select s'affiche ?

ou tu veut englober dans le meme select plusieurs bases de données ?
0
Kopros
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
86
17 févr. 2009 à 22:42
En fait j'ai une base de données avec plusieurs tables.
Dans une de ces tables, j'ai 2 champs qui m'intéressent : id et nom.

Dans mon select (celui qui est dans ma page php), je crée une liste de noms, donc en les prenant dans ma table.
Ensuite, dans d'autres pages, les données sont traitées, et je voudrais travailler avec l'id, et pas avec le nom.

Donc je dois récupérer l'id qui est en corrélation avec le nom choisi par l'utilisateur dans le menu déroulant. C'est ça que je sais pas faire.

J'espère que je suis compréhensible. :-S
0