menu deroulant avec plusieurs choix sur une page

Invité
Invité n'ayant pas de compte PHPfrance

12 mai 2005, 13:44

Bonjour,

C'est pour afficher la meteo sur un site
j'ai trouvé un site qui me fournit le script, mais pour chaque ville, je dois recuperer un script

alors, j'ai pensé a créer un formulaire avec menu deroulant contenant la liste des ville, mais je n'arrive pas a faire pointer chaque ville sur le bon script

Voila le script qui me permet de recuperer la meteo de paris
<script language=JavaScript src=http://www.avmaroc.com/?mod=Weather2&fi ... 1></script>

celui de toulouse
<script language=JavaScript src=http://www.avmaroc.com/?mod=Weather2&fi ... 1></script>

et celui de marseille
<script language=JavaScript src=http://www.avmaroc.com/?mod=Weather2&fi ... 1></script>

Alors mon but et de créer une liste deroulant avec les noms de ville et faire pointer chaque nom a la bonne meteo, sachant que les code sont tous les memes, il y'a que le code ville qui change, FRXX0076 pour paris, FRXX0099 pour toulouse et FRXX0059 pour marseille


Je pense que le seul moyens et une solution en php
si quelqu'un peut me mettre sur la voie ca serai cool
Merci de votre

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 mai 2005, 13:56

oui ça peut être une bonne idée

tu gardes la structure de ton lien et tu insères le code ville
tu peux les garder dans un tableau associatif ou simplement incrémenter les indices
quelquechose comme ça
<?php
for ($i=0;$i<nbreVilles;$i++) {
?>
<script language=JavaScript src=http://www.avmaroc.com/?mod=Weather2&file=service&code=<?php echo $codeVille[$i]; ?>&cf=trans&ct=000000&font=Verdana&cc=000000&wi=150&ad=1&dec=0&av=1></script>
<?php } ?>
mais tu pourrais a priori appliquer cette solution aussi en Javascript directement[/php]

Mammouth du PHP | 983 Messages

12 mai 2005, 13:57

<?php
if(isset($_POST['id_ville'])){
   $output = '<script language=JavaScript src=http://www.avmaroc.com/?mod=Weather2&file=service&code='.$id_ville.'&cf=trans&ct=000000&font=Verdana&cc=000000&wi=150&ad=1&dec=0&av=1></script>';
}
?>
<html>
   <head>
      <title>Meteo</title>
   </head>
<body>
<form action=<?=$_SERVER['PHP_SELF']?> method="post">
<select name="id_ville">
  <option value='FRXX0076'>Paris</option>
  <option value='FRXX0099'>Toulouse</option>
  <option value='FRXX0059'>Marseille</option>
</select>
<br />
<input type="submit" value="OK" />
</form>
<?
if(isset($output)) 
   echo $output;
?>
J'ai pas testé mais essaies un truc du genre

Dux
Eléphant du PHP | 127 Messages

12 mai 2005, 14:01

salut,

si tu veux le faire en PHP, utilise 1 tableau avec les codes et les villes en clair.

$selection = array(
"Paris, FRXX0076",
"Toulouse, FRXX0099",
"Marseille, FRXX0059"
);

ensuite le formulaire avec le select
html
<form method="GET" action="je sais pas">
<select name="code" id="code" onchange="javascript: this.submit()">
<!-- remplace le &#058 par : -->
<?php
foreach ($selection as $aff) { // listing du tableau

 // on sépare le code de la ville 
list($c,$v) = explode( "," , "$aff);

// on sélectionne par defaut le dernier code demandé
if ($_GET['code'] == $c) $c_lui='selected="selected"'; 
else $c_lui="";

?>
<option value="<?php echo $c ?>" <?php echo $c_lui ?>><?php echo $v ?></option>

<?php } ?>

</select>
<input type="submit" value="ok" />
</form>


<?php if (isset($_GET['code'])) { ?>

<script language=JavaScript 
src=http://www.avmaroc.com/?mod=Weather2
&file=service&code=<?php echo $_GET['code'] ?>
&cf=trans&ct=000000&font=Verdana
&cc=000000&wi=150&ad=1&dec=0&av=1>
</script>

<?php } ?>
la c'est un exemple avec une boucle PHP dans un formulaire en HTML.
Le onchange est en javascript mais il est doublé par un bouton submit au cas ou le visiteur ne puisse l'éxécuter.
Modifié en dernier par Dux le 12 mai 2005, 14:04, modifié 3 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 mai 2005, 14:02

encore mieux, j'avais pas vu le menu déroulant :P