A voir également:
- Incoherence variable Php/javascript
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
1 réponse
Bonjour,
Il s'agit d'un problème de compréhension du fonctionnement de PHP et Javascript.
Ce qu'il faut comprendre, c'est que le PHP est exécuté sur le serveur, avant que la page ne soit transmise au navigateur du visiteur. Le Javascript s'exécute ensuite sur le navigateur du visiteur.
Dans ton cas, la variable PHP $reso n'est pas un entier contenant 1280, mais c'est une chaîne de caractères qui contient "<script>document.write(r);</script>".
Lorsque tu fais "echo $reso", cela écrit dans la source HTML du document le code "<script>document.write(r);</script>", qui est par la suite interprété comme du Javascript sur le navigateur du visiteur.
Les deux tests tentent de comparer $reso, qui est une chaîne de caractères, avec l'entier 1025, ce qu'ils ne parviennent pas à faire, et donc il ne rentre dans aucun des deux blocs if.
En pratique, si tu veux pouvoir afficher une page différente selon la taille de la fenêtre du navigateur, il te faudra appeler une page PHP en ajoutant comme paramètre GET la valeur de la résolution : l'url de la page sera donc de la forme page.php?reso=1280.
Ensuite, pour récupérer cette valeur, il te suffira dans la page PHP de faire : "$reso = intval($_GET['reso']);"
;)
Il s'agit d'un problème de compréhension du fonctionnement de PHP et Javascript.
Ce qu'il faut comprendre, c'est que le PHP est exécuté sur le serveur, avant que la page ne soit transmise au navigateur du visiteur. Le Javascript s'exécute ensuite sur le navigateur du visiteur.
Dans ton cas, la variable PHP $reso n'est pas un entier contenant 1280, mais c'est une chaîne de caractères qui contient "<script>document.write(r);</script>".
Lorsque tu fais "echo $reso", cela écrit dans la source HTML du document le code "<script>document.write(r);</script>", qui est par la suite interprété comme du Javascript sur le navigateur du visiteur.
Les deux tests tentent de comparer $reso, qui est une chaîne de caractères, avec l'entier 1025, ce qu'ils ne parviennent pas à faire, et donc il ne rentre dans aucun des deux blocs if.
En pratique, si tu veux pouvoir afficher une page différente selon la taille de la fenêtre du navigateur, il te faudra appeler une page PHP en ajoutant comme paramètre GET la valeur de la résolution : l'url de la page sera donc de la forme page.php?reso=1280.
Ensuite, pour récupérer cette valeur, il te suffira dans la page PHP de faire : "$reso = intval($_GET['reso']);"
;)
11 juin 2008 à 14:47
quand j'essaye tout en Js cela ne fonctionne pas ex:
<script type="text/javascript">
if(screen.width<1025)
{</script>
<td background="fond.jpg">
<script>
}
</script>
ou
<script type="text/javascript">
if(screen.width<1025)
{
<td background="fond.jpg">
}
</script>
on ne peux pas inserer du html de la sorte dans un test en js?merci