menu déroulant php

patrick888
WRInaute discret
WRInaute discret
 
Messages: 111
Inscription: 2 Aoû 2007

menu déroulant php

Message le Jeu Mai 01, 2008 20:48

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


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3827
Inscription: 14 Sep 2006

Message le Jeu Mai 01, 2008 20:55

Avant le php, il faut savoir en faire un en html. Google -> menu deroulant html

mahdivitche
WRInaute impliqué
WRInaute impliqué
 
Messages: 967
Inscription: 6 Jan 2008

Message le Jeu Mai 01, 2008 22:53

<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


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3884
Inscription: 16 Nov 2004

Message le Ven Mai 02, 2008 8:02

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: Tout sélectionner
<?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>

patrick888
WRInaute discret
WRInaute discret
 
Messages: 111
Inscription: 2 Aoû 2007

Message le Ven Mai 02, 2008 18:16

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: Tout sélectionner
<?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: Tout sélectionner
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!


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités