Plusieurs varaibles dans une fonction

Fermé
Benws2305 - 24 déc. 2013 à 12:35
 Benws2305 - 28 déc. 2013 à 11:34
Bonjour,

Je suis en train de modifier un script météogramme pour alimenter mon site http://meteo-aisne.fr/. Ce script est ici http://meteo-aisne.fr/yr/yrtest.php. Mais voilà, vous pourrez remarquer qu'il y a des panneaux que je souhaite faire 'allumer' quand un paramètre est dépassé. J'ai réussi et voilà ce que cela donne par exemple pour le vent :

function MStoKMH ($ms, $prec=0) {
$prec = (integer)$prec;
$kmh = (float)(3.6 * $ms);

if($ms>10){
$codeHtml = '<script>
document.getElementById("vent4").src="images/panneau-ventfort.png"
document.getElementById("vent4").style.opacity="1"
document.getElementById("vent4").style.filter=alpha(opacity=100)
</script>' ;
$vitesse = round($kmh, $prec) ;
return $vitesse;
}
else {
return round($kmh, $prec);
}
}
C'est tout bête, mais je n'arrive pas à retourner la variable $codeHtml et $vitesse, mais le return ne peux renvoyer qu'une variable non ? Indépendamment, les variables fonctionnent comme il faut



A voir également:

26 réponses

Utilisateur anonyme
24 déc. 2013 à 15:45
Bonjour

Oui, tu ne peux retourner qu'une seule variable. Mais tu as le droit de retourner un tableau, et d'avoir deux valeurs dans ce tableau.
0
d'accord, mais étant très débutant en la matière, je ne sais pas comment faire, cela ressemblerait à quoi ?

merci d'avance !
0
Utilisateur anonyme
24 déc. 2013 à 17:06
Pour retourner un tableau contenant tes deux variables :
return [$codeHtml, $vitesse];

Et pour utiliser les variables :
truc= MStoKMH (bidule,chose);
alert (truc[0]);
alert (truc[1]);

Au passage, on ne fait pas habituellement commencer les noms des variables par $ en javascript (bien que ce soit autorisé). Tu as peut-être fait ça par imitation du php, où les noms de variables commencent obligatoirement par $.
0
D'accord, donc il faut refaire la fonction, ou c'est à insérer à l'intérieur ?

Désolé si je parais bête, mais le java (déja le php alors le java ^^) .....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
24 déc. 2013 à 23:50
... mais le java ...
Malheureux ! Plus jamais ça ! Il s'agit de javascript, pas de java ! Les deux existent mais n'ont aucun rapport. Il est absolument interdit de les confondre.

Pour répondre à ta question, il n'y a rien à changer dans ta fonction, sinon les lignes return pour mettre celle que je t'ai indiquée.
0
D'accord merci, donc cela donne ça :

function MStoKMH ($ms, $prec=0) {
$prec = (integer)$prec;
$kmh = (float)(3.6 * $ms);
if($ms>10){
$codeHtml = '<script>
document.getElementById("vent4").src="images/panneau-ventfort.png"
document.getElementById("vent4").style.opacity="1"
document.getElementById("vent4").style.filter=alpha(opacity=100)
</script>' ;
$vitesse = round($kmh, $prec) ;
return [$codeHtml, $vitesse];
}
else {
return round($kmh, $prec);
}
}

Mais ça ne fonctionne pas, il me retourne une erreur (page blanche).
return [$codeHtml, $vitesse];, quand tu dis tableau c'est fictif, je veux dire par là qu'il ne retourne réellement pas de tableau et qu'il applique les 2 variables ? Parce que si c'est bien ça je ne vois pas où ça peux pêcher.

Bon en tout cas, un joyeux noël à tous ! Et merci encore ^^
0
Utilisateur anonyme
25 déc. 2013 à 12:40
Je viens de remarquer (j'ai honte) qu'il y avait un mélange de php et de javascript dans ton code. Ça fait que ma remarque sur les variables commençant par $ est fausse.
Par contre, le reste est vrai.
return [$codeHtml, $vitesse], même en PHP, te rend bien un tableau, ça n'a rien de fictif.
Par contre, je ne suis pas sûr que ce soit vraiment ce dont tu avais besoin. Si ton script a été prévu pour une fonction rendant une variable simple, l'as-tu adapté pour une fonction qui rend un tableau ?
Peux-tu montrer le code qui utilise la fonction ?
De plus, le javascript contenu dans ton code est incorrect : il manque un ; à la fin de chaque ligne.
0
Salut,
Je peux te joindre en mp ? Comme je n'est pas trouvé le lien pour cela, je te joint l'adresse mail publique de mon site : meteo.aisne[at]yahoo.fr
0
Utilisateur anonyme
25 déc. 2013 à 23:11
Non, tu ne peux pas me joindre en MP car j'ai interdit les MP.
Je peux les débloquer si tu as un motif sérieux, sinon, le fonctionnement normal du forum est de poser ses questions publiquement.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes conbaissances, donc en mp cela aurait convenu.
0
D'accord ! c'est parce que je voulais te montrer la page php entiere que je ne souhaite pas rendre publique. je pense que tu peux maider, vu tes connaissances, donc en mp cela aurait convenu.
0