Bonjour à tous.

Me revoici avec mes questions bizarres ! Smiley lol

Problèmatique

Je cherche à réaliser une liste déroulante qui, lorsque l'on sélectionne un élément, nous amène sur une page particulière. Jusque là, rien de bien méchant.
Mon problème est que, je souhaite que lorsque le visiteur choisi sa destination dans la liste, l'URL s'affichant soit de la forme http://www.monsite.fr/dossier/repertoire_1/ où "repertoire_1" est le choix du visiteur.
Vous remarquerez que je ne souhaite pas avoir de nom de page en fin d'URL !

Ce qui à déjà été testé

Pour ce faire, j'ai utilisé un <SELECT> qui se valide dès que le choix est fait (pas de bouton "Ok"). Le problème est qu'à chaque fois, je me retrouve avec une variable dans mon URL (ce qui me semble normal puisqu'il s'agit d'un formulaire).

Voici le code utilisé à présent :


echo '<form action="$_SERVER['PHP_SELF'];">';
echo '<select name="d" onchange="this.form.submit();">';
echo '<option value="0" selected="selected">&gt;&gt; Faites votre choix &lt;&lt;</option>';
echo '<option value="repertoire_1">"Nom du répertoire (Numéro du répertoire)</option>';
(etc... pour chaque répertoire)
echo '</select>';
echo '<noscript><input type="submit" value="Changer" /></noscript>';
echo '</form>';


Question

Comment puis-je faire pour que, lorsque le visiteur fait son choix dans la liste, la page soit rechargée avec le bon nom de répertoire et l'URL écrite de la manière suivante http://www.monsite.fr/dossier/repertoire_1/ plutôt que comme suit http://www.monsite.fr/dossier/?d=repertoire_1

Avez-vous une petite explication et/ou solution à me proposer ? Smiley sweatdrop

Pour information : j'utilise une connexion à une base de données pour générer ma liste mais pour mon ex, ça n'a pas d'importance.
Modifié par Nobduck (14 Jan 2011 - 15:29)
Salut,

Si tu ne veux pas que les données transitent par l'url (GET) tu peux utiliser POST comme méthode de formulaire (method="POST") et récupérer les variables en php comme ça :
$_POST['nomChamps'];


A toi ensuite de faire les vérifications et le traitement (avec if/else ou switch case) pour rediriger (avec la fonction header()) sur la page voulue.

Je débute en php alors j'espère que je ne dis pas trop n'importe quoi Smiley lol
Bonne chance pour la suite !
Merci oliviadox

Cependant, cela ne correspond pas exactement à ce que j'aimerais.

Je souhaiterais, pour faire simple, c'est qu'au moment de la validation du formulaire, les variables inscrites dans l'URL (dans le cas d'un GET) ne soient pas de la forme ?id=variable mais de la forme /variable/ (suppression de "?id=" et conservation de la valeur de la variable).

Pas évident mon truc Smiley sweatdrop

N'y a-t'il pas moyen de personnaliser une URL lors de la soumission d'un formulaire ? Smiley confus

Merci de votre aide Smiley confused
Ah ok j'avais pas compris ça Smiley lol
Pour faire ce que tu veux il faut créer un fichier .htaccess à la racine de ton serveur avec des règles de réécriture d'url du type RewriteRule blabla
Par contre je peux pas t'aider sur la syntaxe exacte mais une petite rechercher avec htaccess et réécriture d'url sur google devrait faire l'affaire Smiley cligne