Version complète: sur le forum Webmaster Hub : Insérer une image issue d'une URL
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Badr3am
Bonsoir,

Bon je vais essayer de vous poser ma question en étant le plus clair possible (c'est pas gagné)

J'aimerai afficher la météo sur mon site, pour celà j'utilise la météo proposée par Free (http://support.free.fr/web/pperso/meteo.html).

Free propose donc d'afficher la météo d'un département (ou de plusieurs) simplement en intégrant le lien de l'image dans une page web. Jusque là rien de compliqué.

Pour mon site, je ne veux pas une météo fixe qui concernerait un seul département, c'est évident. Je ne peux pas non plus me permettre d'afficher les 96 départements sur une page, bonjour le pavé et niveau esthétique peu mieux faire

J'ai donc créé une liste déroulante avec les 96 départements accompagnée d'un bouton tout simple qui valide le choix et renvoie sur l'url de la météo du département concerné.

Seulement, j'aimerai insérer cette image sur mon site. Vous voyez ce que je veux dire ? A savoir que lorsque le visiteur valide son choix, au lieu de tomber sur une page blanche avec le petit encadré météo en haut à gauche, il le retrouverait sur mon site. Et si il voulait la météo d'un autre département il lui suffirait simplement de faire à nouveau un choix dans la liste et de valider pour voir apparaître l'image à la place de la météo précédente.

Je ne sais pas si c'est très clair lol, difficile à expliquer et surtout difficile à mettre en oeuvre (je suis débutant en même temps alors ce qui est difficile pour moi l'est rarement pour les autres).

Si quelqu'un pouvait m'indiquer comment procéder, ça m'aiderai vraiment

Merci d'avance blush.gif
Anonymus
Il te faut un langage de programmation coté serveur, type php.

Avec cela, tu as 2 choses à faire. D'un coté, le formulaire, qui s'appelle elle même.
Ca te donne ceci :

<form name=machin method=POST>
<select name=truc>
<option value=01>Ain</option>
<option value=02>Aisne</option>
<option value=03>Allier</option>
</select>
</form>

Ensuite, il te faut le programme qui permette d'afficher l'image, et qui sera ainsi :
<img src="http://perso0.free.fr/cgi-bin/meteo.pl?dep=<?=$_POST['truc']?>">


Voilà,
Anonymus.
Badr3am
Bonsoir,

Merci pour ta réponse Anonymus, je vais essayer ça, je n'y connais rien en Php donc j'espère que je vais savoir comment insérer tout ça lol ... Je te tiens au courant.

Merci encore.
Badr3am
Re ...

Je suis nul je n'arrive pas à faire fonctionner le script ... L'image reste désespérément blanche avec la croix rouge et ceci quelque soit le choix que je fasse dans le menu. Je n'arrive d'ailleurs pas à faire en sorte que le bouton valide le choix et affiche l'image. unsure.gif

[Au passage désolé pour le sujet que j'avais placé sur la partie HTML mais je ne savais pas quel langage utiliser pour ce code alors voilà ... Merci de l'avoir déplacé]
sarc
Salut wink.gif

Sans ton code, on aura du mal à voir ce que tu fais sur ton site... Le php en plus ne peut se voir qu'à partir du code, donc on aurait bien du mal à te dire où est l'erreur !
Au lieu d'afficher l'image, pour l'instant, affiche donc l'url de l'image, tu verras déjà mieux ce que tu mets comme url...

Ensuite il nous faudrait le code biggrin.gif
Badr3am
Bonjour,

Pour ce qui est du code que j'ai réalisé avant de poster ici, il était de comme suit :

CODE
<html>
<head>
    <title></title>
</head>

<body>

<table>
    <tr>
  <td align="center">
  <img src="http://perso0.free.fr/cgi-bin/meteo.pl?dep=01">
  </td>
    </tr>
    <tr>
  <td align="center">
  <form name="meteo" method="post">
  <select name="select" style="font-family: arial;font-size: 10px">
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=01">Ain</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=02">Aisne</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=03">Allier</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=04">Alpes-de-Haute-Provence</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=05">Hautes-Alpes</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=06">Alpes-Maritimes</option>

...

[Je coupe parce que la liste reprend les 96 départements]

...

  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=93">Seine-Saint-Denis</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=94">Val-de-Marne</option>
  <option value="http://perso0.free.fr/cgi-bin/meteo.pl?dep=95">Val-d'Oise</option>
  </select>
  </form>
  </td>
    </tr>
    <tr>
  <td align="center">
  <input type="button" onClick="location=document.meteo.select.options[document.meteo.select .selectedIndex].value;" style="font-family: arial;font-size: 10px" value="Voir la météo">
  </td>
    </tr>
</table>

</body>

</html>


Avec ce code, j'obtiens au départ une page avec une image de la météo par défaut suivie d'une liste déroulante et d'un bouton pour valider le choix. En sélectionnant un département et en validant, le visiteur est redirigé vers l'url de la météo (à savoir page blanche avec le ptit encadré en haut à gauche)

Je voulais donc que le choix s'affiche à la place de l'image par défaut.

J'ai essayé d'utiliser le code de Anonymus mais je pense que je l'utilise mal (je suis plus que débutant quand il s'agit d'utiliser du php ...)

Voilà donc mon soucis, j'aimerai que l'image de la météo s'affiche sur ma page web et non pas être redirigé vers la page blanche.

Je ne sais pas trop si c'est clair encore une fois blush.gif
destroyedlolo
En javascript ca se fait aussi tres bien. Pour mettre a jour l'image, ca donnerait qq chose du genre.

CODE
document.getElementById('nom_image').src=url_donnee_par_free;


Il n'y a juste qu'un onchange() a ajouter sur la liste.
Badr3am
Pfiouuu je suis complètement perdu entre le JavaScript et le Php je ne sais plus quoi utiliser ... Je crois que je mélange les codes wacko.gif
Badr3am
Bonsoir,

Bon étant donné que je ne suis pas parvenu à adapter ma liste déroulante comme je le souhaitais, j'ai trouvé (après bien des recherches) un petit script en php/mySQL qui présente toutefois une erreur.

Je vous post le code :

CODE
<?php

/* ------------------------------------
  Free-Météo V1.0 par Christophe MEYER
  http://stombi.free.fr/
  E-Mail : stombi_AT_free.fr
  ------------------------------------
*/

echo "<body bgcolor=#000000>";


require ("cfg-meteo.php3");


if ($dept == "") {
    $dept="34";
        }  

$ide= MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");
$query = "SELECT * FROM meteo WHERE departem=$dept";
$result = mysql_query($query,$ide);
$de = mysql_num_rows($result);

$p=0;
    while($p<$de){
 $dept=mysql_result($result,$p,"departem");
 $nomdept=mysql_result($result,$p,"nomdepartem");
$p++;
}


echo ("
<br>
<table width=110 border=1 cellspacing=0 cellpadding=5 bordercolor=#FFFFFF align=center>
 <tr>
   <td>
     <table width=100% border=0 cellspacing=3 cellpadding=0>
       <tr>
         <td>
           <div align=center><b><font face=verdana size=2 color=#ffffff>METEO</b></font></div>
         </td>
       </tr>
       <tr>
         <td><font face=verdana size=1 color=#ffffff>$nomdept</font></td>
       </tr>
       <tr>
         <td align=center><img src=http://perso0.free.fr/cgi-bin/meteo.pl?dep=$dept></td>
       </tr>
       <tr>
         <td align=center><font face=verdana size=1 color=#ffffff>Votre n&deg; de d&eacute;partement
           :</font></td>
       </tr>
       <tr>
         <td align=center>
           <form method=post action=meteo.php3>
               <input type=text name=dept size=2 maxlength=2>
               <input type=submit name=deptok value=Ok>
             </form>
         </td>
       </tr>
     </table>
   </td>
 </tr>
</table>");


mysql_close();
?>


Avec ce code il y a un code de config pour le mySQL et un dernier code qui liste les 96 départements.

J'ai donc fait un include dans ma page HTML vers le fichier en php3 et je trouve le message d'erreur suivant :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/d/b/preventionrisques/meteo.php3 on line 40


La ligne incriminée est la suivante :

$de = mysql_num_rows($result);

J'ai cru comprendre en me documentant que le script ne trouvait pas la base de données, je ne comprend pas trop.

- J'ai testé le script "seul" en ne l'insérant pas dans ma page, il fonctionne parfaitement mais il y a ce message erreur juste au dessus.

- J'ai testé le script "intégré" à ma page et il ne fonctionne pas (il n'apparaît même pas) seule l'erreur est affichée à l'endroit où le code devrait apparaître.

Je n'y connais strictement rien en php, j'apprend en parcourrant ce code et je me familliarise un peu avec ce langage en essayant de modifier les champs pour résoudre le problème mais je ne parviens pas à savoir d'où il vient.

Quelqu'un peut m'éclairer ? hypocrite.gif
destroyedlolo
CITATION(Badr3am @ samedi 28 janvier 2006, 20h20)
Pfiouuu je suis complètement perdu entre le JavaScript et le Php je ne sais plus quoi utiliser ... Je crois que je mélange les codes  wacko.gif
*


Ben,

l'avantage du PHP, c'est que t'es sur que ca fonctionne chez n'importe quelle visiteur.
L'inconvegnant etant que tu as des aller/retour entre le navigateur et ton serveur.

L'avantage du JS, c'est que tu n'as pas d'aller retour car tout est gerer un local sur le navigateur.
Les inconveignants sont que ca ne fonctionnera pas si le javascript est devalide sur le client (surprise ... biggrin.gif ), et il faut que tu generes la liste de tous les associations Departement/Javascript mais ce ne devrait pas etre un gros probleme.

Personnelement, je choisirai le javascript pour ne pas avoir de requetes inutiles vers mon serveur.
Badr3am
Bonjour destroyedlolo,

Je suis d'accord avec toi concernant les inconvénients du php, mais au delà de ça c'est surtout les connaissances qui me manquent ...

Je me suis appuyé sur du php parce que je ne sais pas comment faire autrement et que je ne parviens pas à obtenir ce que je veux sous JS unsure.gif
Badr3am
Quelqu'un à une idée pour mon erreur dans le code php ? blush.gif
Chark
J'ai rapidement modifié ton code pour obtenir ce que tu voulais :
Tout est en php, pas de java script: cela recharge la page quand tu clique sur "voir la météo"


CODE
<html>
<head>
<title></title>
</head>

<body>

<table>
<tr>
 <td align="center">
<? $departement=1;
if (isset($_POST['select'])) {
$departement=$_POST['select'];
}
?>
 <img src="http://perso0.free.fr/cgi-bin/meteo.pl?dep=<?php echo $departement; ?>">
 </td>
</tr>
<tr>
 <td align="center">
 <form name="meteo" method="post" action="testmeteo.php">
 <select name="select" style="font-family: arial;font-size: 10px">
 <option value="01" <? if ($departement==1) echo 'selected' ?>>Ain</option>
 <option value="02" <? if ($departement==2) echo 'selected' ?>>Aisne</option>
 <option value="03" <? if ($departement==3) echo 'selected' ?>>Allier</option>
 <option value="04" <? if ($departement==4) echo 'selected' ?>>Alpes-de-Haute-Provence</option>
 <option value="05" <? if ($departement==5) echo 'selected' ?>>Hautes-Alpes</option>
 <option value="06" <? if ($departement==6) echo 'selected' ?>>Alpes-Maritimes</option>

 <option value="93" <? if ($departement==93) echo 'selected' ?>>Seine-Saint-Denis</option>
 <option value="94" <? if ($departement==94) echo 'selected' ?>>Val-de-Marne</option>
 <option value="95" <? if ($departement==95) echo 'selected' ?>>Val-d'Oise</option>
 </select>
 </td>
</tr>
<tr>
 <td align="center">
 <input type="submit" value="Voir la météo">
 </td>
</tr>
 </form>

</table>

</body>

</html>


N'hesite pas a poser des questions si cela ne te parait pas clair
Badr3am
Bonjour Chark,

Merci pour ton coup de main ça m'aide vraiment le code que tu as posté. Il me reste plu qu'à faire afficher le numéro et le nom du département au dessus de la vignette météo et j'ai enfin ce que j'espérais.

Merci encore pour le coup de main c'est sympa biggrin.gif
Chark
De rien, c'est un plaisir.
Tu sais, j'ai si souvent obtenu des réponses grace aux forums du hub ( bien que je n'ai rarement posé de questions directes et qu'en parcourant les post j'y ai souvent trouvé un sujet qui m'a aidé ). La communauté de webmaster-hub est vraiment super.
Alors je trouve que c'est un juste retour des choses d'aider lorsque j'en suis capable.
Badr3am
J'avoue que moi je n'y connais pas grand chose et comme je suis totalement débutant je n'ai pas grands conseils à indiquer. Surtout en Php ... La preuve je galère constamment dés que je veux faire la moindre chose je passe des heures sur les sites de cours, sur les exemples etc pour voir comment m'en sortir et afficher ce que j'aimerai.

Même là afficher le num de département et le nom j'y arrive pas unsure.gif
Badr3am
Bonsoir,

Je voulais savoir si quelqu'un pouvais m'indiquer comment conditionner un affichage (echo) à un choix dans une liste déroulante ? En utilisant l'aide de Chark j'aimerai faire apparaître le num de département et le nom de ce même département à chaque choix.

Pour le numéro c'est pas un problème de faire afficher la variable mais pour le nom je n'y parviens pas ...

Merci d'avance ^_^
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.