Problème de lien avec une liste déroulante

Problème de lien avec une liste déroulante - HTML/CSS - Programmation

Marsh Posté le 15-09-2006 à 00:43:34    

Bonsoir tout le monde.  
 
N'étant pas du tout informaticien mais devant créer un site web, je me retrouve bloqué par un souci technique pour rendre plus agréable la navigation pour l'utilisateur.  
Je m'explique:  
J'ai une liste de marques que j'aimerais proposer sous forme de liste déroulante, et où l'utilisateur sélectionnera la marque qu'il cherche dans la liste, et en cliquant sur "ok", je veux que la page web correspondant à cette marque se charge.  
Pour se faire, j'ai créé les pages correspondant à chaque marque sous la forme "marqueX.htm".  
Mon problème est que je ne sais pas du tout comment faire pour récupérer la valeur du formulaire "marque" et dire à mon navigateur de lancer la page "marqueX.htm" si l'utilisateur choisit "marqueX".  
 
J'espère que mon problème n'est pas trop confus, mais j'ai vraiment l'impression que la solution est toute bête mais je ne sais pas comment m'en sortir.  
En attendant j'ai crée un tableau avec toutes les marques, et l'utilisateur doit cliquer sur celle qu'il veut pour accéder à la page.  
 
 
D'avance merci pour votre aide.

Reply

Marsh Posté le 15-09-2006 à 00:43:34   

Reply

Marsh Posté le 15-09-2006 à 01:17:34    

Il faut gérer l'événement onChange de la listbox.
Voir les exemples et les explications qui se trouvent http://www.acces-pour-tous.net/fic [...] javascript

Reply

Marsh Posté le 15-09-2006 à 14:27:30    

Re et merci pour la rapidité de la réponse.
J'ai essayé et la méthode avec java script fonctionne, mais la 2ème méthode où il faut écrire un script (je pense qu'elle est meilleure car rien ne me dit que l'utilisateur aura javascript), j'ai un problème car quand je choisis une marque et clique sur envoyer, mon navigateur m'affiche le script php au lieu de la page désirée.
Je ne m'y connais pas vraiment et ne sais pas où il pourrait y avoir une erreur.
 

Citation :

<?php
switch($_POST['Liste']){
case "Renault":
header("Location: Renault\Renault.htm" );
break;
case "Peugeot":
header("Location: Peugeot\Peugeot.htm" );
break;
case "Citroen":
header("Location: Citroen\Citroen.htm" );
break;
default:
header("Location: offre.htm" );
}
?>


 
Voila le script tel que je l'ai enregistré et voila le fichier form1.js:
 

Citation :

var str='';
str+='<FORM>'
str+=' <select NAME=\"ListeUrl\" SIZE=1 onChange=\"ChangeUrl(this.form)\">'
str+=' <option selected="selected" value=\"\">-Marque-</option>'
str+=' <option value="Renault\Renault.htm">Renault</option>'
str+=' <option value="Peugeot\Peugeot.htm">Peugeot</option>'
str+=' <option value="Citroen\Citroen.htm">Citroen</option>'
 
str+=' </select>'
str+=' </FORM>'
document.write(str)


 
Et enfin le code sur ma page html:
 

Citation :

<head>
<title>Liste déroulante et javascript</title>
<script type="text/javascript" src="form1.js"></script>
<noscript>
<FORM method="POST" action="redirect.php">
<select NAME="Liste">
<option selected="selected" value="">-Marque-</option>
<option value="Renault">Renault</option>
<option value="Peugeot">Peugeot</option>
<option value="Citroen">Citroen</option>
 
<input type="submit" name="envoi" value="envoyer" />
</FORM></noscript>  
<body>


 
D'avance merci.

Reply

Marsh Posté le 15-09-2006 à 14:49:41    

:heink:
 
1/ ton js ne sert à rien ici, puisque tu le fais le traîtement PHP
2/ il manque un  method="post"  dans ta ta balise <form> du coup
 
sinon, en js :
 

Code :
  1. <select id="marques">
  2.   <option value="/"></option>
  3.   <option value="marques/marque1.htm">Marque 1</option>
  4.   <option value="marques/marque2.htm">Marque 2</option>
  5.   ...
  6. </select>
  7. <input type="button" onclick="javascript:window.location.href = document.getElementById('marques').options[document.getElementById('marques').selectedIndex].value;" value="Ok"/>


Message édité par MagicBuzz le 15-09-2006 à 14:50:12
Reply

Marsh Posté le 15-09-2006 à 15:11:23    

Le method="post" est déja sur ma page html non ?
Ou il faut l'ajouter aussi dans le script ?
 
Je ne sais vraiment pas quoi utiliser, en fait je voudrais que cette sélection fonctionne sur n'importe quel pc (c'est pour ça que j'aimerais éviter le javascript car rien que sur mon pc, il me demande l'autorisation de l'utiliser.).

Reply

Marsh Posté le 15-09-2006 à 15:12:42    

ah oui, tu as raison.
 
en fait, ton JS ne sert à rien, je sais pas pourquoi tu l'as posté (et dedans, y'a pas de post)

Reply

Marsh Posté le 15-09-2006 à 15:14:07    

arf, en fait c'est encore plus con.
 
ta variable en post contient la page, pas le nom de la marque.
 
donc ton script php :
 

Code :
  1. <?php
  2. header("Location: ".$_POST['Liste']);
  3. ?>


Message édité par MagicBuzz le 15-09-2006 à 15:14:17
Reply

Marsh Posté le 15-09-2006 à 15:15:30    

PS: par contre, je te conseille de faire en plus du bouton
 

Code :
  1. <select name="Liste" onclick="document.forms[0].submit();">


 
Comme ça ceux qui ont le JS activé n'ont pas besoin de cliquer sur le bouton

Reply

Marsh Posté le 15-09-2006 à 15:20:42    

Aïe c'est toujours pareil.
Moi qui pensais avoir compris quelque chose en PHP je me rends compte que je n'ai rien compris du tout lol.

Reply

Marsh Posté le 15-09-2006 à 15:28:21    

bon, change ta page redirect de la façon suivante :
 

Code :
  1. <?php echo("Location: ".$_POST['Liste']);?>


 
Et dis-nous ce que ça donne après quelques tests.
Parceque là, très franchement, même si je ne sais pas pondre une ligne de PHP, ma soluce devrait marcher...
 
Peut-être que le header "location" n'aime pas les chemins relatifs ? ou peut-être doit-il être accompagné d'autres headers ?


Message édité par MagicBuzz le 15-09-2006 à 15:29:31
Reply

Marsh Posté le 15-09-2006 à 15:28:21   

Reply

Marsh Posté le 15-09-2006 à 15:34:30    

Maintenant au lieu de m'afficher le script, il me demande de le télécharger quand je clique sur envoyer.

Reply

Marsh Posté le 15-09-2006 à 15:47:03    

:heink:
 
ton serveur supporte le php au moins :heink:

Reply

Marsh Posté le 15-09-2006 à 15:49:04    

Mon site n'est pas encore en ligne, je suis en train de le créer sur mon pc.
Mais oui l'hébergeur que j'ai pris supporte bien le php.

Reply

Marsh Posté le 15-09-2006 à 15:50:51    

ben comment tu veux tester ton truc en locale sans serveur :o
 
met tes fichiers chez ton hébergeur pour faire les tests :o
(ou installe et utilise easyphp)
 
forcément, si tu testes directement depuis ton disque ça ne va pas marcher ! c'est un peu comme vouloir ouvrir un document *.doc sans word et depuis une invite ms-dos... c'est pas gagné


Message édité par MagicBuzz le 15-09-2006 à 15:51:28
Reply

Marsh Posté le 15-09-2006 à 15:58:20    

lol.
Merci.
Donc peut être que mon script fonctionne.
Il faut que je récupère mes identifiants d'hébergement et je testerais ça.
Merci de ton aide.

Reply

Marsh Posté le 15-09-2006 à 16:02:21    

en effet, après relecture complète il doit marcher.
 
shoote ton JS de ton premier post (et de ton disque dur) à chaque fois que crois qu'il est utlisé, et lui par contre il est buggé jusqu'à la moëlle :o


Message édité par MagicBuzz le 15-09-2006 à 16:03:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed