menu déroulant php

WRInaute discret
Bonjour,


J'ai le code php suivant dont je me sert pour generer un certain nombre de liens, et
je voudrais au lieu que ceux ci s'affichent sous forme de liens normaux, qu'ils s'affichent
sous forme d'un menu déroulant, mais je n'ai aucune idée de la démarche à effectuer, si quelqu'un
pouvait me donner un tit coup de main, ça serait super sympa .

CODE<?php
$sql = ("SELECT DISTINCT ville FROM rotisserie ORDER BY ville");
$result = mysql_query($sql);

echo '<ul>';

while ($row = mysql_fetch_assoc($result)) {
echo '<li><a href="rotisserie-'.preg_replace("/ /","-",$row['ville']).'.html">'.$row['ville'].'</li>';

}

echo '</ul>';
?>

Patrick
 
WRInaute impliqué
<form method="post" action="ville.php">
<?php
$sql = ("SELECT DISTINCT ville FROM rotisserie ORDER BY ville");
$result = mysql_query($sql);

echo "<select name=ville onchange=submit()>";

while ($row = mysql_fetch_assoc($result)) {
echo "<option value=$row['ville']> $row['ville'] </option>";
}

echo '</select>';
?>


et la fin tu doit cree un page ville.php pour recuperer la valeur de la liste et afficher la page que vous voulez selon cette valeur
 
WRInaute accro
Il faut renvoyer l'adresse dans une variable et ensuite faire la redirection.

Donc en premier tu auras la redirection (avec un test sur la variable $load qui est passé en hidden dans le formulaire) et ensuite une simple lecture de ta table dans une liste html. La fonction js form.submit() se charge de reloader la page.


Code:
<?php

  // redirection
 if (!empty($_POST_['load']))
 {
 header("location:".$_POST_['ville']."");
 exit();
  }

 ?>


<form name="form" action="ville.php" method="post">
<input type="hidden" name="load" value="1">

<select name="ville" onchange="form.submit();">
<?php
$sql = ("SELECT DISTINCT ville FROM rotisserie ORDER BY ville");
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
echo '<option value="rotisserie-'.preg_replace("/ /","-",$row['ville']).'.html"> '.$row['ville'].' </option>';
}

?>
</select>
 
WRInaute discret
Merci de votre aide,

Le premier code n'a pas l'air de marcher, peut etre ais je fait une boulette !!!
et le deuxieme marche, me fait mon menu deroulant, mais quand je clique sur le nom des villes, rien ne se passe, un petit logo d'erreur s'affiche en bas de ma page.

Dans ma page ville.php, le code est le suivant:

Code:
<?php 
$ville = $_GET['ville'];  

$sql = ("SELECT nom,adresse,code_postal,ville FROM rotisserie WHERE ville='$ville' ORDER BY nom"); 
$result = mysql_query($sql); 

while ($row = mysql_fetch_assoc($result)) { 
echo '<ul>'; 
echo '<li>'.$row['nom'].'</li>'; 
echo '<li>'.$row['adresse'].'</li>'; 
echo '<li>'.$row['code_postal'].'</li>'; 
echo '<li>'.$row['ville'].'</li>'; 
echo '<li>'.$row['mail'].'</li>'; 
echo '</ul>'; 
} 
?>


il marche tres bien avec les liens sans menu déroulant, je sais pas si le probleme vient de là?

J'essaie de jouer avec la ligne suivante,mais sans trouver pourquoi quelque chose cloche!

Code:
echo '<option value="rotisserie-'.preg_replace("/ /","-",$row['ville']).'.html"> '.$row['ville'].' </option>';


Si vous avez encore une idée!

En tout cas, déja merci!
 
Discussions similaires
Haut