Vous n'êtes pas identifié.
Bonjour,
J'avais le code suivant
<?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
<?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.
<?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
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
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.
<form action="/rotisserie-toutes-les-villes.php" method="post" name="form">
Patrick
Hors ligne
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:
<?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
Merci beaucoup Koogar 
Je ne sais pas comment on met Résolu,...sur le forum
Hors ligne