Phpsources Forums

Vous n'êtes pas identifié.

#1 03-05-2008 18:11:30

patrick888
Nouveau membre
Date d'inscription: 03-05-2008
Messages: 3

[Résolu] menu déroulant

Bonjour,

J'avais le code suivant

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>'; 
?>

permettant de me faire des liens vers une page ville.php
Je voulais faire un menu déroulant, donc, j'ai eu une aide de Koogar qui m'a donné ce 2 eme code

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>

Mais j'ai du faire une boulette quelque part, car le menu déroulant apparait correctement avec le nom des villes, mais ne fait pas de liens vers ma page ville.php dont le code est le suivant: et me dit erreur sur la page.

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>'; 
} 
?>

Si quelqu'un pouvait encore une fois m'aider... Merci

Patrick

Hors ligne

 

#2 03-05-2008 21:34:11

KOogar
Administrateur
Lieu: PHP Rapide !!
Date d'inscription: 21-12-2007
Messages: 513

Re: [Résolu] menu déroulant

Bonjour,

oui c'est normal, tu apel le fichier ville.php car dans le formulaire il y a :: action="ville.php"... mais si j'ai bien compris, ce que tu veux faire  c'est une redirection sur une adresse de ce genre : "rotisserie-Toulouse.html" , et non sur le fichier ville.php


remplace:
<form name="form" action="ville.php" method="post"> 

par
<form action="<?php print $_SERVER['REQUEST_URI'];?>" method="post" name="form">

ensuite la meme page sera appelé de nouveau et la redirection devrait se faire normalement.

Hors ligne

 

#3 03-05-2008 22:50:47

patrick888
Nouveau membre
Date d'inscription: 03-05-2008
Messages: 3

Re: [Résolu] menu déroulant

Merci de ta réponse...

En fait, c'est tout à fait ça, ma page ou aboutissent mes liens de mon premier code s'appelle en fait rotisserie.php, donc, avec tout mon tralala d'url rewriting,  chaque ville devient du type rotisserie-toulouse.html comme vous me le dites.
mais j'ai quand meme ma page rotisserie.php qui sert de base et qui se décline...

Et donc, en remplaçant comme vous me dites ça ne marche toujours pas, ça me fait exactement la meme chose. pas clicable et petit message d'erreur.

Mais en tout cas, le code sans menu déroulant marche et m'envoie sur la page type rotisserie-toulouse.html

Je sais, je ne suis pas un bon...

Que faire, si vous avez encore une idée, moi je suis largué.

mon code source donne ça pour la ligne que vous m'avez fait changé: soit, la page avec le menu déroulant de toutes les villes.

Code:

<form action="/rotisserie-toutes-les-villes.php" method="post" name="form">

Patrick

Hors ligne

 

#4 05-05-2008 08:56:09

KOogar
Administrateur
Lieu: PHP Rapide !!
Date d'inscription: 21-12-2007
Messages: 513

Re: [Résolu] menu déroulant

le script marche de cette facon :

tes champs sont lu dans une boucle, il ya un JS dessus qui lorsque l'on selectionne un champ, cela rapel la page.

Donc si tu regarde le code, l'on va rapeler la page en mettant l'url a rediriger dans la variable "ville_form"
et on va faire la redirection, j'ai décomposer et commenter le code pour tu comprennes :

<?php

  // redirection

$load = $_POST_['load']; // recupe la variable passer en hidden dans le formulaire
                                         // si c'est oui on fait la redirection
$ville_redirection = $_POST_['ville_form']; // cette variable contient une url du genre :
                                                                    //   rotisserie-toulouse.html
if ($load == 1)
{
header("location:$ville_redirection");  // la fonction header fait la redirection sur l'adresse :
                                                             // rotisserie-toulouse.html     
exit();
  }

?>

donc cette portion de code doit aller tout tout en haut de ta page rotisserie.php. le formulaire tu le met ou tu veux.

voici le code complet:

Code:

<?php 
  // a mettre tout tout en haut de ta page
  // redirection 

 $load = $_POST_['load'];
 $ville = $_POST_['ville_form'];
 if ($load == 1)
 { 
 header("location:$ville");
 exit(); 
  } 

 ?> 


ce code tu le met ou tuu veux sur ta page :

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

<select name="ville_form" 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>

Hors ligne

 

#5 07-05-2008 19:36:21

patrick888
Nouveau membre
Date d'inscription: 03-05-2008
Messages: 3

Re: [Résolu] menu déroulant

Merci beaucoup Koogar smile

Je ne sais pas comment on met Résolu,...sur le forum

Hors ligne

 

Pied de page des forums

Propulsé par
PunBB