Liste déroulante et hyperlien

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Liste déroulante et hyperlien

par AB » 28 déc. 2008, 20:37

Arf ... j'ai posté sans voir ta réponse :(
En fait, tu ne peux pas faire de liens (/hyperliens) sur les options d'un select....
Ben pas directement mais si on fait le traitement du formulaire on peut bien mettre n'importe quoi dans l'option et faire une redirection en fonction de son contenu.
Maintenant pour l'ouverture automatique d'une nouvelle fenêtre effectivement il faudra passer par du javascript.

@Alain78 on peut donc faire comme ceci

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <script type="text/javascript"> function redirection(id) { var value_champ = document.getElementById(id).value; if(value_champ != '') window.open(value_champ); } </script> <style type="text/css"> form, select { margin:0; padding:0; } #menuselect select { background-color:#66CCFF; font-family: Comic Sans MS; font-size:0.9em; font-weight:bold; } </style> </head> <body> <div> <form id="menuselect" action="#" method="get"> <p> <select id="selection" name="page" onchange="redirection(this.id)"> <option value="">Choisissez</option> <option value="accueil.html">page 1</option> <option value="index.php?variable=2">page 2</option> <option value="liens.html">page 3</option> </select> </p> </form> </div> </body> </html>
Tu vois qu'il suffit de mettre l'url de destination avec sa variable get dans value

par Alain78 » 28 déc. 2008, 20:14

en fait je ne souhaite pas utiliser de language client. C'est une règle absolue pour moi. Donc adieu Javascript et Java.

J'ai résolu mon problème en traitant la liste déroulante comme un formulaire seul. Et l'action de ce formulaire est un fichier externe que j'ouvre dans une cible '_blank'. Bien sûr un message sur le nouvel écran ouvert rappelle à l'utilisateur de ne pas oublier de fermer cet écran.

Cela suffit à mon besoin actuel mais ....vivement la version de PHP qui permettra d'ouvrir et de fermer des pop up, d'inclure des hyperliens dans des listes déroulantes ...etc.
echo "<form method='POST' action='salle_detail.php' target='_blank' >";

Merci encore pour votre aide et vos conseils.

:)

par Ryle » 28 déc. 2008, 18:47

C'est possible, mais ressemble plus à du javascript.

En fait, tu ne peux pas faire de liens (/hyperliens) sur les options d'un select. En revanche, en javascript, tu peux détecter le changement de valeur du select (avec l'attribut onchange) et exécuter une fonction qui te permettra de récupérer la valeur sélectionnée, d'ouvrir une nouvelle fenêtre, etc.

Voire au besoin interroger le serveur pour récupérer des données de php (via ajax), mais je doute que tu en ais besoin ici...

par AB » 28 déc. 2008, 18:38

La certitude c'est que c'est possible.
Mais j'ai pas le temps pour l'instant de corriger ton code. Regardes le code html généré, tu trouveras certainement l'origine de l'erreur.

Liste déroulante et hyperlien

par Alain78 » 28 déc. 2008, 18:29

Bonjour,

Savez vous si en PHP on peut faire une liste déroulante dont chaque item est un hyperlien cliquable?
L'idée est que lorsqu'on clique sur un item de la liste, cela déclenche l'exécution d'un script PHP qui s'ouvre dans une nouvelle fenêtre distincte. L'hyperlien passe un paramêtre au script appelé.

Compte tenu de la puissante de PHP je pense que oui mais je ne trouve pas l'astuce.

Voici le code que j'ai imaginé mais cela ne fonctionne pas.
Si vous avez des idées ou .....une certitude que cela est impossible, merci pour votre aide.

NB : le tableau $row1 est défini en amont.

echo "<select name='ref_salle' size='5' >";
	$ttsalle=$row1[nom_salle];
        $tt_ref_salle=$row1[ref_salle];

$lien="<a HREF='salle_detail.php?ref_salle=$tt_ref_salle' TARGET='_blank'> $ttsalle </a>";

echo "<option value= $tt_ref_salle > $lien </option>"; 
echo '</select><br>';ligne(1);
:wink: