Liste déroulante cliquable

mattéo -  
 Raiden -
Bonjour,

Je cherche actuellement une petite parade en php. Je m'explique :)

J'utilise un formulaire avec liste déroulante tout ce qu'il y a de plus banale. Seulement je voudrais rendre l'envoi de ce formulaire faisable à partir d'un click direct dans la liste déroulante (sans passer par un "bouton").

Le but de cette action est d'incrémenter (par mon formulaire) mon URL et ainsi accéder dans une deuxième étape (bouton clickable) à une page URL rewrité (pour cette action, j'ai absolument besoin de cette incrémentation du début).

Avant de faire un petit résumé du problème j'ai une autre proposition qui serait idéale ... si j'y arrive :D
Qu'une option dans la liste déroulante renvoi vers un lien URL du type <a href="...">blabla</a>
C'est à dire que l'on utilise aucun formulaire mais que la liste déroulante soit elle même un recueil automatisé de tous les liens ...

Résumé:

Base : une page avec de nombreuses possibilités de liens
Cible : une page dynamique (URL rewrité) qui se crée en fonction d'un ID envoyé ou d'une adresse type (URL rewriting) qui contient en bout l'ID qui intéresse. Ex: www.lalala.fr/mon-pote-9.html

Vous l'aurez peut être compris mon problèe ici est l'URL rewriting car sans ça je n'aurais aucun problème à accéder à cette page dynamique avec l'ID envoyé ...
Seulement l'URL rewriting exige une adresse type ... (avec l'ID dedans avant l'envoi )

J'espère avoir été clair (même si j'ai l'impression d'être vague) et merci d'avance :)
A voir également:

31 réponses

empty Messages postés 931 Statut Membre 176
 
Ca ira mieux comme ça :-)

<form name="form1" method="post" action="success.php">

<select OnChange="document.form1.submit();">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

</form>
2
mattéo
 
Coucou,

MERCI ça fonctionne très bien :D
c'est pas très honnête de prendre un petit détour comme ça pour régler mon problème mais tout marche parfaitement :)

Merci encore à TOUTES et à tous :)
0
empty Messages postés 931 Statut Membre 176 > mattéo
 
De quel détour parle tu ? Mis à part en Javascript, il n'y a pas d'autres moyens :-s
0
babou54
 
j'ai une solution mais je c pas si elle te conviendra :

tu peux mettre l'url dans la value de tes options
et sur l'évènement onchange tu fait une redirection javascript en recupérant le valeur
en gros ca devrait ressembler a ca :

<select id="select" onchange="chargeURL()">
<option value="URL">blabalbal</option>
</select>

code java :

function chargeURL()
{
window.location.href=document.getElementById('select').value;
}

;)
1
empty Messages postés 931 Statut Membre 176
 
Il y a moyen de faire ça avec un attribut OnClick="" mais c'est du Javascript ^^ en PHP pas moyen...

Maintenant tu peux peut-être essayer avec un <a href=""> j'ai déjà essayé ça fonctionne sur certains navigateurs mais pas tous (je pense)...
0
mattéo
 
Merci pour vos réponses, pour ce qui est des href=... j'ai essayé et c'est vrai que c'est tendu du slip comme on dit.
Maintenant je vais tenter la solution avec le javascript la seule question que je me pose c'est qu'elle est l'action de onchange ? et j'envoie donc tout cela avec un bouton submit classique ?

En tout cas merci :)
0

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

Posez votre question
babou54
 
nop le onchange va exécuter ta fonction js a chaque fois que la valeur de la liste déroulante sera modifié, pas besoin de submit ;)
0
mattéo
 
Ouuuhhhhhouhhhh je sens que je vais avoir l'air con mais j'assume :D

J'ai écrit tout cela le seul truc c'est que quand je choisi une option dans ma liste déroulante il n'y a rien qui ce passe ...

Alors plusieurs possibilités :

Soit j'ai mis le script JS au mauvais endroit (est ce qu'il y a un endroit précis ?)
Soit mon <form est mal rédigé , en gros je n'ai mis dedans que method="get"
Soit bah je sais pas ... :D
0
babou54
 
alouurrr...:)
C pô un problème de form puisque tu t'en sert pô pour le cas la.
Le JS doit être entre tes balises <head> de la page où se situe ton form bah voilou c tous ce que jpeux faire sinon si y a encoe des soucis balance ton code
0
bg62 Messages postés 26245 Date d'inscription   Statut Modérateur Dernière intervention   2 424
 
bonjour,
ça faisait longtemps ... mais aujourd'hui je repique ma crise ....
ce forum est ouvert à tous, mais par respect pour ceux qui voudraient vous aider, pour ceux qui vous répondent,
pourquoi ne pas vous inscrire ?
c'est gratuit et sans risque (sauf celui de trouver des gens indésirables qui parcourent les forums pour polluer ...)
merci
0
babou54
 
voui d'accord promis je vais m'inscrire :s
Mais dans ce cas pourquoi autorisé les utilisateurs non enregistrer à participer ?
0
mattéo
 
Ce qui devait arriver arriva je suis pourri :D

donc je te donne le code :) (pas faire attention c'est pas trop du propre :D)

<script type="text/javascript">
function chargeURL()
{
window.location.href=document.getElementByld('select').value;
}
</script>






<select id="select" onchange="chargeURL()">
 <?
$query_listeForm = sprintf("SELECT ID , nom FROM fiche_metier WHERE domaine='1'");


	 
	$listeForm = mysql_query($query_listeForm, $IAE) or die(mysql_error());
$row_listeForm = mysql_fetch_assoc($listeForm);
$totalRows_listeForm = mysql_num_rows($listeForm);
for($j=0;$j<$totalRows_listeForm;$j++){
	mysql_data_seek($listeForm,$j);
	$row_listeForm = mysql_fetch_assoc($listeForm);
	
	$titre=$row_listeForm['nom'];
	  $titre=str_replace("È" , "e" , $titre);
	  $titre=str_replace("‡" , "a" , $titre);
	  $titre=str_replace(" " , "-" , $titre);
	 $titre=str_replace("/" , "-" , $titre);
	 $titre=str_replace("Ë" , "e" , $titre);
	 $titre=str_replace("\'" , "-" , $titre);
	 $titre=str_replace("'" , "-" , $titre);
	 $titre=str_replace(":" , "-" , $titre);
	 $titre=strtolower($titre);
	
	echo "<option value=".$titre."-".$row_listeForm['ID'].".html".">";
	echo $row_listeForm['nom'];
	echo "</option>";
	
	
}

?>

</select>
0
mattéo59000 Messages postés 10 Statut Membre
 
Désolé pour l'innatention bg62 je suis déjà inscrit c'est juste que je n'ai pas fait gaffe à l'entrer ...
0
babou54
 
dans ta fonction chargeURL
ta essayé de faire un truc bidon genre
alert('aaaaa');
juste pour savoir si la fonction est declanché
sinon
si oui c bon
essaie de
alert(document.getElementByld('select').value);
ca c'est juste pour voir si y' a une valeur dans la variable

pi tme redis
0
mattéo59000 Messages postés 10 Statut Membre
 
Je viens de tenter mais il n'y a rien du tout qui se passe ... moi non plus je ne comprend pas car malgré mon air béaaaaa lol je comprend tout ce que cela fait mais je ne vois pas de soucis ...

Il sélectionne juste la valeur du menu déroulant et ne f rien d'autre ... je vais répéter ma connerie mais n'est il pas nécessaire de soumettre cette URL enregistré avec un bouton ou autre ?
0
babou054 Messages postés 164 Statut Membre 11
 
lol nan y'a pas besoin de mettre de bouton submit j'en suis certaine maintenant si il se passe rien du tout "hum hum" le pb doit venir du javascript il est bien placé ?? ( je c deja demandé mais bon )
0
mattéo59000 Messages postés 10 Statut Membre
 
bah oui oui dans le head ... peut être y a til un problème avec ceci :

c'est une page avec modèle .... peut être que ça crée un prob


<head>

<!-- InstanceBeginEditable name="doctitle" -->
<title>Votre projet professionnel</title>
 <link href="../css/commun.css" rel="stylesheet" type="text/css">
 <meta name="description" content="RÈalisez votre projet professionnel ‡ l'IAE de Lille, dÈcouvrez toutes les carriËres en marketing, communication, finances, comptabilitÈ, mangement, gestion, sciences sociales" />

<!-- InstanceEndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- InstanceBeginEditable name="head" -->
<script type="text/javascript">
function chargeURL()
{
window.location.href=document.getElementByld('select').value;
alert(document.getElementByld('select').value);
}
</script>
<!-- InstanceEndEditable -->
</head>

0
babou054 Messages postés 164 Statut Membre 11
 
erf jvois pô ...

si tu change ca "window.location.href" par ca "document.location.href"

ca change rien non plus ?
0
mattéo59000 Messages postés 10 Statut Membre
 
Nada kedal Oualou ...

Avec ton aide si tu acceptes :D vais essayer de détourner le problème :)

Et si on pouvait au moment du click dans le menu déroulant, faire un envoi automatique de la value sélectionner.
Pour ensuite avoir un formulaire (ou autre) qui récupère l'ID qui vient de se mettre dans l'URL et qui fabrique en "live" (lol) l'adresse exacte dont j'ai besoin ?

Au final on aurait qu'un bouton submit, et un léger rafraichissement de la page .... (oui je sais je triche) :D
0
babou054 Messages postés 164 Statut Membre 11
 
si jcomprend bien tu veux envoyé le formulaire c'est bien ca ??
0
mattéo59000 Messages postés 10 Statut Membre
 
Oui envoyer le premier formulaire : un get qui mettrait l'ID dans l'URL et que sur la même page on récupère cet ID pour construire un lien en "dure" qui serait camouflé derrière un bouton submit ou qqc dans le genre ...

seulement faudrait que l'envoi du premier formulaire se fasse au niveau du choix dans le menu déroulant (sans que l'on soit obligé de cliquer sur un submit) doit y avoir du JS dans le coin c certain ...

hum hummmmm comme tu dis :)
0
babou054 Messages postés 164 Statut Membre 11
 
ba oui onchange... lol
0