Page 1 sur 1
Liste déroulante + Recupération variable
Posté : 11 févr. 2007, 17:13
par Neomcdn
Bonjour!
Je souhaite afficher un lien météo sur mon site. Pour cela, j'ai contacté Meteo Consult et j'ai demandé si l'on pouvait faire des liens directs vers leurs différentes pages: pas de problème pour eux. Après avoir récupéré l'url de la page et les différents codes attachés aux villes que je recherche; j'ai écris le code PHP pour récupérer le code dans l'url. Mais là problème: le code n'est pas récupéré.
Code : Tout sélectionner
<?php require_once('connections/free.php'); ?>
<?php mysql_select_db($database_conn_develop, $conn_develop);
$query_rs_ville = "SELECT nom_ville, meteo_ville FROM tbl_ville ORDER BY nom_ville ASC";
$rs_ville = mysql_query($query_rs_ville, $conn_develop) or die(mysql_error());
?>
<body>
<td><form id="tbl_ville" name="tbl_ville" method="post" action="<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'];?>" target="_blank">
<label>
<select name="meteo_ville" id="meteo_ville">
<?php
// Tant qu'il y a une ville, faire ..
while ($row_rs_ville = mysql_fetch_assoc($rs_ville)) {
// affiche la ville dans la liste de choix
echo '<option value="', $row_rs_ville['meteo_ville'], '">', $row_rs_ville['nom_ville'], '</option>', "\n";
// fin de la boucle.
} ?>
</select></label><label><input type="submit" name="Submit" value="Envoyer" /></label>
</form>
</td>
</body>
Avez-vous une idée d'où peut provenir le problème?
Merci pour votre aide!
PS: si vous êtes intéressés par ce lien météo direct; c'est gratuit, il faut simplement contacter l'un des commerciaux!
Re: Liste déroulante + Recupération variable
Posté : 11 févr. 2007, 19:10
par Aureusms
As tu un résultat après ?
$query_rs_ville = "SELECT nom_ville, meteo_ville FROM tbl_ville ORDER BY nom_ville ASC";
En clair, est ce que ta requête est bonne?
Salut!!
Posté : 12 févr. 2007, 09:57
par Neomcdn
Oui la requête fonctionne: nous avons compris le problème; maintenant il faudrait qu'on le résolve, et ça,...
En gros, comme on est encore côté client au clic sur "Envoyer" le résultat de la requête ne peut être envoyé côté serveur: il faudrait quelque chose pour récupérer la valeur du select ou voir une réécriture d'url.
Je cherche...
Posté : 12 févr. 2007, 10:04
par Invité
OK Je pense avoir compris ....
Si je vois bien tu pointe ton POST vers
<form id="tbl_ville" name="tbl_ville" method="post" action="<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'];?>"
A l'intérieur tu as
qui pour lui est inconnu car tu lui donne la variable $row_rs_ville qu'après. (à la ligne avec le While)
Je pense que cela vient de là.
Posté : 12 févr. 2007, 10:13
par Aureusms
Au fait C'était moi le dernier message...
Je vois aussi que la méthode de Météo Consult à l'air d'être un GET et non un POST
Essaye alors de mettre :
et
Pour être conforme avec :
Code : Tout sélectionner
http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville']
Mais attention les variable $_GET['num_ville'] seront crées dès que l'utilisateur cliquera.
Aussi comme tu as dans ta ligne action 3 variables GET :
Il faut que tu les fasses apparaitre dans ton formulaire en format HIDDEN par exemple.
J'espère que c'est bon.
A+
Re!
Posté : 12 févr. 2007, 10:20
par Neomcdn
Je n'arrive pas à lire ton code PHP, peux-tu éditer ton message stp?
Je crois voir ce que tu me dis!
Selon toi, il faut donc que je fasse précéder mon form par mon while?
[edit]je viens de voir ton dernier Post: Ok pour le GET!: j'attends de tes news avec impatience!
Merci d'avance!
Posté : 12 févr. 2007, 10:26
par Aureusms
Lis mon dernier message, j'ai essayé ...
Re
Posté : 12 févr. 2007, 10:56
par Neomcdn
Je viens moi-même d'essayer et je me rends compte qu'a priori cela fonctionne (récupération du code dans l'url), mais pas sur la bonne page!
Ce n'est pas ma page Meteo consult qui se rouvre mais ma page générique sur laquelle j'ai mon formulaire. bizarre!
Mon code est désormais:
Code : Tout sélectionner
<td><form id="tbl_ville" name="tbl_ville" method="GET" action"<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'] ?>" target="_blank" />
<label>
<select name="num_ville" id="meteo_ville">
<?php
// Tant qu'il y a une ville, faire ..
while ($row_rs_ville = mysql_fetch_assoc($rs_ville)) {
// affiche la ville dans la liste de choix
echo '<option value="', $row_rs_ville['meteo_ville'], '">', $row_rs_ville['nom_ville'], '</option>', "\n";
// fin de la boucle.
} ?>
</select></label><label><input type="submit" name="Submit" value="Envoyer" /></label>
</form>
</td>
Qu'en penses-tu?
Merci par avance!
Posté : 12 févr. 2007, 11:47
par Aureusms
Je ne suis pas sûr que tu es besoin de
Code : Tout sélectionner
<td><form id="tbl_ville" name="tbl_ville" method="GET" action"<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'] ?>" target="_blank" />
Mais de
Code : Tout sélectionner
<td><form id="tbl_ville" name="tbl_ville" method="GET" action"<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0' ?>" target="_blank" />
En clair je pense que lorsque l'utilisateur va poster, ta variable $_GET['num_ville'] va venir s'ajouter a la ligne action et donc te donner :
http://www.meteoconsult.fr/ter/france/p ... ville=4483
par exemple (pour Rouen, c'est là ou je suis.)
Posté : 12 févr. 2007, 13:02
par Neomcdn
J'ai modifié mon form comme tu me l'as conseillé, mais le problème reste le même:
si je clique sur "Envoyer", le code est bien récupéré, mais la page qui s'ouvre récupère l'ancienne url et non pas celle de Meteoconsult. Il me charge:
http://develop.web.free.fr/template_met ... it=Envoyer
au lieu de:
http://www.meteoconsult.fr/ter/france/p ... ille=14397.
Que faire?
Le problème est visible ici:
http://develop.web.free.fr/template_meteo.php
Merci![/url]
Posté : 12 févr. 2007, 13:07
par Invité
Oups je viens de voir un truc pas vu depuis le début ...
Code : Tout sélectionner
action"<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'] ?>" target="_blank" />
tu as oublié le "="
Code : Tout sélectionner
action="<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'] ?>" target="_blank" />
Posté : 12 févr. 2007, 13:08
par charabia
Posté : 12 févr. 2007, 13:08
par Aureusms
Encore moi... j'oublie souvent de me loguer avant de répondre...
C'est vrai que cela a été plus facile avec ta page Web.
N'hésite plus à la mettre en ligne pour nous aider à t'aider...
Posté : 12 févr. 2007, 16:12
par Neomcdn
Damned I'm too stupid!!!
Effectivement, tss ça fonctionne mieux avec le "=".
Merci beaucoup!
Une question cependant, Aureusms, je n'ai pas compris tes craintes vis à vis du GET?...
Mais attention les variable $_GET['num_ville'] seront crées dès que l'utilisateur cliquera.
Aussi comme tu as dans ta ligne action 3 variables GET langue, echeance, num_ville
Il faut que tu les fasses apparaitre dans ton formulaire en format HIDDEN par exemple.
Quels sont les risques? Merci!
PS: Je redonne le code complet pour ceux qui voudrait mettre de la meteo sur leur site avec Meteo Consult (pensez demander l'autorisation au site avant de le faire, car de toute façon ils s'en rendront compte):
Code : Tout sélectionner
<?php require_once('Connections/blabla.php'); ?>
<?php mysql_select_db($database_conn_develop, $conn_develop);
$query_rs_ville = "SELECT nom_ville, meteo_ville FROM tbl_ville ORDER BY nom_ville ASC";
$rs_ville = mysql_query($query_rs_ville, $conn_develop) or die(mysql_error());
?>
<body>
<td><form id="tbl_ville" name="tbl_ville" method="GET" action="<?php echo'http://www.meteoconsult.fr/ter/france/prevision/detail.php?langue=fr&echeance=0&num_ville='.$row_rs_ville['meteo_ville'] ?>" target="_blank" />
<label>
<select name="num_ville" id="meteo_ville">
<?php
// Tant qu'il y a une ville, faire ..
while ($row_rs_ville = mysql_fetch_assoc($rs_ville)) {
// affiche la ville dans la liste de choix
echo '<option value="', $row_rs_ville['meteo_ville'], '">', $row_rs_ville['nom_ville'], '</option>', "\n";
// fin de la boucle.
} ?>
</select></label><label><input type="submit" name="Submit" value="Envoyer" /></label>
</form>
</td>
</body>