OVH Cloud OVH Cloud

Javascirpt et PHP

28 réponses
Avatar
Jeanmi
Salut a tous !

Est-il possible d'insérer du php entre des balises javascript ????
Ex :<script language="javascript"> <?php Code PHP?> </script> ???? Si
oui comment ????

Merci de me venir en aide

JM

10 réponses

1 2 3
Avatar
Etienne SOBOLE
Est-il possible d'insérer du php entre des balises javascript ????
Ex :<script language="javascript"> <?php Code PHP?> </script> ???? Si oui
comment ????


ouille ouille ouille.

Erreur classique du debutant...
Non c'est pas possible. Ou plus exactement, c'est possible, mais ca ne
marchera pas.

ah moins que ta question ne soit:
est il possible de générer du javascript en PHP, alors la c'est oui:

en gros ca, ca marche:
<script language="javascript">
<?
echo "alert('ca marche');";
?>
</script>

mais ca, ca ne marche pas
<script language="javascript">
<?
echo 'ca marche';
?>
</script>


un petit view source dans ton navigateur t'aidera a comprendre le pourquoi
de la chose.

PS : avant de te lancer dans le PHP assure toi de bien comprendre ce que
c'est et comment ca marche sinon tu n'ira pas loin :)
Etienne

Avatar
JPW
Salut a tous !

Est-il possible d'insérer du php entre des balises javascript ????
Ex :<script language="javascript"> <?php Code PHP?> </script> ???? Si
oui comment ????

Merci de me venir en aide

JM
C'est tout à fait possible, mais

- le javascript est interprété (tourne) par le browser
- le php est interprété par le serveur web. Il peut donc servir à
générer du script (ou une partie de script) Javascript.

jpw

Avatar
Jeanmi

Salut a tous !

Est-il possible d'insérer du php entre des balises javascript ????
Ex :<script language="javascript"> <?php Code PHP?> </script> ???? Si
oui comment ????

Merci de me venir en aide

JM


C'est tout à fait possible, mais
- le javascript est interprété (tourne) par le browser
- le php est interprété par le serveur web. Il peut donc servir à
générer du script (ou une partie de script) Javascript.

jpw
Ok merci



Avatar
bruno
plus precisement, le code php (et ses balises) ne sont pas envoyés au
client, par contre toute sortie sur le flux standart (la page HTML) est
envoyé...
CAD :
<script language="javascript">
blabla bla
<?php
mon code PHP
?>
</script>
du moment ou tu ne fait aucune sortie (echo...) ta page sera "viege de
code" :
<script language="javascript">
blabla bla
</script>
si tu fait une sortie :
<script language="javascript">
blabla bla
j'ai fait un echo ici, le voulas-je?
</script>

donc, oui, tu peut... mais est-ce util?
ca peut l'etre...
ca peut ne pas l'etre...
si ca ne l'est pas... evite...
si ca l'est : reduit au minimum quitte a faire tes claculs et appel a
la BDD ailleurs...

si tu ne connait pas, fait des recherches sur le model MVC (model vue
controlleur)
Avatar
Jean-François Hicter
donc, oui, tu peux... mais est-ce utile ?


C'est très utile quand tu veux passer une variable Javascript à un
script PHP ! :-)

Une astuce consiste à *reloader* la page avec passage de ou des
variables en URL -- méthode GET.

Si quelqu'un connaît l'astuce avec passage par la méthode POST, je suis
preneur !

Voici un exemple qui passe à PHP les valeurs *availWidth* et *availHeight* :

<?php


if (isset($_GET['w']) && isset($_GET['h'])) { // recuperation des
donnees envoyees par le Javascript *alpha*
$w = $_GET['w'];
$h = $_GET['h'];
}

else { // ecriture du script *alpha* determinant la largeur et la
hauteur utile de l'ecran utilisateur
print("<script language="javascript" type="text/javascript">");
print("location.href='index.php?w='+screen.availWidth+'&h='+screen.availHeight+''");
print("</script>");
exit();
}


?>


Bon.
Ceci dit, la variable availHeight merde !
Elle est censée renvoyer la hauteur utile.
Or, elle ignore les barres de menus, etc.
Quelqu'un sait d'où vient ce problème ?

Avatar
Olivier Miakinen

[...]

Une astuce consiste à *reloader* la page avec passage de ou des
variables en URL -- méthode GET.

Si quelqu'un connaît l'astuce avec passage par la méthode POST, je suis
preneur !


Non testé, mais cela devrait marcher : utiliser un formulaire, non
forcément visible sur la page, et invoquer sa méthode submit() en
JavaScript.

Voici un exemple qui passe à PHP les valeurs *availWidth* et *availHeight* :

<?php


if (isset($_GET['w']) && isset($_GET['h'])) { // recuperation des
donnees envoyees par le Javascript *alpha*
$w = $_GET['w'];
$h = $_GET['h'];
}


Si tu veux pouvoir appeler ta page par POST aussi bien que par GET, tu
aurais intérêt à remplacer $_GET par $_REQUEST.


else { // ecriture du script *alpha* determinant la largeur et la
hauteur utile de l'ecran utilisateur
print("<script language="javascript" type="text/javascript">");


Un peu plus court et plus lisible :
print("<script language='javascript' type='text/javascript'>");

Voire :
print("<script type='text/javascript'>");

print("location.href='index.php?w='+screen.availWidth+'&h='+screen.availHeight+''");


Remplacer « & » par « &amp; ».

Ceci dit, la variable availHeight merde !
Elle est censée renvoyer la hauteur utile.
Or, elle ignore les barres de menus, etc.


Quand tu dis qu'elle les ignore, tu veux dire qu'elle *ajoute* leurs
hauteurs à celle vraiment utile ?

Quelqu'un sait d'où vient ce problème ?


Aucune idée pour ma part.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
ASM
Jean-François Hicter wrote:
donc, oui, tu peux... mais est-ce utile ?



C'est très utile quand tu veux passer une variable Javascript à un
script PHP ! :-)


oui ... mais ... est--ce *utile* de passer ces variables au php ?

si y a pas de JS ==> hop ! pas de php non plus ...

Autant rester tout en JS à ce compte là ! non ?

Bon.
Ceci dit, la variable availHeight merde !
Elle est censée renvoyer la hauteur utile.
Or, elle ignore les barres de menus, etc.


Dans quel environnement ?
- Mac ? vieux ? nouveau ?
- Windows ? 98 ? XP ?
- Linux ?
- Navigateur ? IE ? FF ? autre ?

Quelqu'un sait d'où vient ce problème ?


de Windows sans doute !?

et puis, normalement : screen.height et screen.width
devraient faire

mais pour plus d'infos mieux éclairées bien qu'en en pour la plupart :
http://developer.mozilla.org/en/docs/DOM:window.open
http://developer.mozilla.org/en/docs/DOM:window.open#Note_on_outerHeight_versus_height
http://www.infimum.dk/HTML/JSwindows.html
http://perso.wanadoo.fr/stephane.moriaux/internet/web_html/java/fenetr/
http://www.gtalbot.org/DHTMLSection/EnlargeThumbnail.html
Interactive window properties, methods, events page:
http://www.gtalbot.org/DHTMLSection/WindowEventsNS6.html#evtLayerXY



--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Jean-François Hicter
Si quelqu'un connaît l'astuce avec passage par la méthode POST, je suis
preneur !


Non testé, mais cela devrait marcher : utiliser un formulaire, non
forcément visible sur la page, et invoquer sa méthode submit() en
JavaScript.


Un *auto-submit*, en quelque sorte...
Jamais essayé. Je vais me pencher sur le sujet...
Merci pour la piste !

Quand tu dis qu'elle les ignore, tu veux dire qu'elle *ajoute* leurs
hauteurs à celle vraiment utile ?


Elle ignore *d'enlever*, effectivement ! :-)


Avatar
Jean-François Hicter
oui ... mais ... est--ce *utile* de passer ces variables au php ?

si y a pas de JS ==> hop ! pas de php non plus ...


Message d'erreur : activer JS, please ! :-)

Bon.
Ceci dit, la variable availHeight merde !
Elle est censée renvoyer la hauteur utile.
Or, elle ignore les barres de menus, etc.



Dans quel environnement ?


Powerbook G3/400, MacOS 10.3.9, Navigateurs : Safari, Camillo, Firefox,
Explorer.
À noter qu'Explorer donne une valeur différente des autres mais tout
aussi fausse.

Quelqu'un sait d'où vient ce problème ?
de Windows sans doute !?



Perdu ! :-)


Avatar
ASM
Jean-François Hicter wrote:
oui ... mais ... est--ce *utile* de passer ces variables au php ?

si y a pas de JS ==> hop ! pas de php non plus ...


Message d'erreur : activer JS, please ! :-)


Non merci ! ni JS ni Flash ! je zappe :-)

Powerbook G3/400, MacOS 10.3.9,


et tu es content de 10.3.9 sur un G3/400 ?
(vaut-ce la peine que je l'installe sur le vieux
iMac G3/270 de la gamine actuellement en 10.2)

Navigateurs : Safari, Camillo, Firefox,
Explorer.
À noter qu'Explorer donne une valeur différente des autres mais tout
aussi fausse.

Quelqu'un sait d'où vient ce problème ?


de Windows sans doute !?



Perdu ! :-)


Artch ! Krotre ! :-)

Mais ... tu es sûr de ton coup car chez moi :

alert('s-h = '+screen.height+'ns-ah = '+screen.availHeight);

me donne bien, avec FF, Safari, iCab :
s-h = 870
s-ah = 844

et, avec IE 5.01
s-h = 870
s-ah = 841
(on va pas chipoter 3px)

(G4/1.25Mh 10.3.7)




--
Stephane Moriaux et son [moins] vieux Mac



1 2 3