Aller au contenu

select multi-variable


recherche_webmaster

Sujets conseillés

Bonsoir,

Voilà ce que je souhaite réussir : Passer une variable d'une page à une autre au moyen d'un select.

Jusque là c'est très simple.

Mais voilà ça se complique :

Les champs options du select ne peuvent être composés d'un simple nom.

Sinon la page qui va recevoir la variable du select dont la valeur sera le nom contenu dans option ne saura pas quoi aller chercher dans la base (il y a des doublons etc...).

Donc dans le select, je dois passer aussi un id précis (par exemple), soit deux variables en une seule fois.

C'est impossible n'est-il pas...

Mais peut-être vos lumières m'éclaireront-elles et me donneront une idée salvatrice.

Modifié par recherche_webmaster
Lien vers le commentaire
Partager sur d’autres sites

Bonjour, midi,

Soit je ne comprends pas ce que tu souhaites faire, soit je ne vois pas trop où se trouve la difficulté.

Les champs proposés dans le select peuvent être visibles (clic sur le champ voulu), et cachés (<input type="hidden"...>).

Lors du choix, les variables placées en type="hidden" seront pris en compte.

J'ai bon, ou je n'ai vraiment rien compris ? :whistling:

xpatval

Lien vers le commentaire
Partager sur d’autres sites

tu as à moitié bon, ou c'est moi qui n'ait pas tout compris.

Je peux effectivement utiliser un champ hidden, mais je ne peux pas utiler un select dans lequel se trouve une information/variable visible et une information hidden, le tout dans le même <option>.

exemple S1:

<select name="bob">

<option>premier nom</option>

<option>deuxième nom</option

</select>

ça c'est simple mais ça ne marche pas dans mon cas : je vais avoir des doublons etc...

exemple S2:

<select name="bob">

<option>id n°1</option>

<option>id n°2</option

</select>

ça ça fonctionne pour la base, mais présenter une liste d'id aux visiteurs...

Donc je dois passer les deux en un.

Bon ce n'est pas une question de vie ou de mort hein, mais y'a peut être un truc à creuser.

Modifié par recherche_webmaster
Lien vers le commentaire
Partager sur d’autres sites

As tu essayé :

<select name="bob">
<option value=id1>nom1</option>
<option value=id2>nom2</option
</select>

Sinon, idem, je n'ai pas trop bien compris ce que tu aimerais avoir comme infos en sortie :/

Lien vers le commentaire
Partager sur d’autres sites

Voilà !

Comme je débute je ne savais pas que l'on pouvait passer la valeur d'une option directement dans la balise et donc que celle-ci n'est pas forcément donnée par le nom contenu entre <option></option>, si j'ai bien compris ton exemple du moins.

Là je suis sur autre chose, dès que j'ai terminé, dans deux heures je pense, j'essaie et je vous dis si c'est bien ce que je souhaitais.

Merci

Modifié par recherche_webmaster
Lien vers le commentaire
Partager sur d’autres sites

Tout bon, anonymous !

Du genre de cette ligne, après un SELECT (SQL) et un WHILE, par exemple:

    <option value="<?php print $i[$champ1];?>"><?php echo $champ_libelle;?></option>

xpatval

Lien vers le commentaire
Partager sur d’autres sites

je n'ai pas essayé le truc d'anonymus encore.

Mais pourquoi tu mets un print dans le option et un echo entre les deux balises xpatval ?

<{POST_SNAPBACK}>

Pour que tu me poses la question ? :lol:

les deux en "echo".

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Bon et bien j'ai essayé cela, ça ne fonctionne pas :

<select>
<?php
$req="SELECT id, mot FROM demandes WHERE vue=1 and donne=0 ORDER BY date";
$res=mysql_query("$req");
while ($bob=mysql_fetch_array($res))
{
echo"
<option value=\"$bob[id]\">$bob[mot]</option>
";}
mysql_free_result($res);
?>
</select>

Sur ma ma page le select n'a qu'une option "définition demandée".

D'ailleur je me demande d'où il sort cette option :blink:

Modifié par recherche_webmaster
Lien vers le commentaire
Partager sur d’autres sites

Ah si si ça marche !

C'est parce que j'ai rempli un formulaire sans préciser le nom du mot demandé alors il m'a rempli le champ de la table avec le contenu du value par défaut du formulaire.

D'où l'effet de surprise :huh:

mais je viens de vérifier dans le code source d'IE, le n° d'id est bien dans le option.

je vais voir si ça se transmet bien maintenant.

Lien vers le commentaire
Partager sur d’autres sites

Fais plutôt comme ceci :

while ($bob=mysql_fetch_array($res))
{
echo"
<option value=\"".$bob[id]."\">".$bob[mot]."</option>";
}

c'est plus logique.

Lien vers le commentaire
Partager sur d’autres sites

Arf mais c'est nul aussi, quand je clique sur valider ça m'expédie sur la page de traintement en passant tout dans l'url.

J'ai fait un url rewriting justement pour la sécurité et maintenant pour ce select on voit toutes les variables.

J'avais pas pensé à ça :boude:

Comment cela se puisse t-il être d'ailleurs?

Sur mes pages de formulaire j'ai un "form action" qui transmet les variables à une page de traitement et ces variables n'apparaissent pas dans l'url.

Et là elles apparaissent. Les poufs.

Comment ça se fait ça ?

Modifié par recherche_webmaster
Lien vers le commentaire
Partager sur d’autres sites

Dans un cas, tu fais un "form action" comme ceci :

<form method=POST action=..

et dans l'autre (où tu vois les variables) :

<form method=GET action=..

Pour que les variables ne soient pas visibles dans l'url, il faut utiliser la méthode POST. Ceci dit, ce n'est pas parce qu'elles ne sont pas visibles qu'elles sont mieux sécurisées. De plus, un moteur de recherche ne cherchera pas à remplir un formulaire ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...