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
Jean-François Hicter
et tu es content de 10.3.9 sur un G3/400 ?


Un G5 le ferait mieux, mais bon...
Je ne sais pas si un Linux Debian est plus véloce...

(vaut-ce la peine que je l'installe sur le vieux
iMac G3/270 de la gamine actuellement en 10.2)


Ça fait tellement longtemps que je suis sous 10.3 que je ne saurais te
dire quelles sont les différences...


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


Ça fait 26 pixels pour toutes les barres de menu, d'état, etc.
Y'a pas comme une couille, là, non ?
Ou alors on ne parle pas de la même chose...
Les valeurs qui m'intéressent sont les pixels *contenu* dans la fenêtre
du navigateur. Par exemple si tu réduis ta fenêtre à 400 X 400 px, je
voudrais récupérer des valeurs du style 390 X 300 px, en tenant compte
des scrollers et des menus. Or, ces fameuses availWidth et availHeight
renvoient toujours une valeur fixe dont on ne sait pas trop d'où elle
vient...

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


L'informatique est censée être une science exacte...
3 px d'écart, ça mérite le peloton d'exécution, moi, je dis ! :-)

Avatar
ASM
Jean-François Hicter wrote:
Ça fait tellement longtemps que je suis sous 10.3 que je ne saurais te
dire quelles sont les différences...


bon ... alors ... tu ne souffres pas trop de lenteurs ?
combien de RAM as-tu ?

Les valeurs qui m'intéressent sont les pixels *contenu* dans la fenêtre
du navigateur.


Ha ben ! si on m'essplique pas t'aussi !

Par exemple si tu réduis ta fenêtre à 400 X 400 px, je
voudrais récupérer des valeurs du style 390 X 300 px, en tenant compte
des scrollers et des menus.


tu as lue la doc que j'ai fournie ?
en particulier chez Talbot (si tu ne veux tout te farcir)

voilà le test que j'en ai tiré :
http://perso.wanadoo.fr/stephane.moriaux/truc/taille_fenetre.htm
où on voit que les seuls sur lesquels on puisse compter sont Safari et iCab

pour affiner : détecter le navigateur et compter avec présence scrollbars
(voir chez Talbot Gérard)

IE5 1 ou 2 pour Mac ne passent pas mon test ! :-(

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Jean-François Hicter
bon ... alors ... tu ne souffres pas trop de lenteurs ?


Non. C'est aussi rapide qu'un système 9...
Après, il y a le problème des applis. Évidemment, celles-ci ont suivi le
développement hardware et, par exemple, il est exclut que je fasse
tourner Final Cut. Autre exemple, pour lire un DivX, je dois fermer
toutes les autres applis -- pas super génant, tu vas me dire... :-) --
et il n'y a que MPlayerX qui suive la cadence ; et encore... dès que ça
speed, ça saccade... :-(
Mais sinon pour la PAO et web, c'est jouable -- pas de prod'
amphétaminée parisienne, non plus ! Juste jouable...

combien de RAM as-tu ?


384 Mo. Pas suffisant, c'est clair. La mémoire virtuelle est beaucoup
trop mise à contribution.



voilà le test que j'en ai tiré :
http://perso.wanadoo.fr/stephane.moriaux/truc/taille_fenetre.htm
où on voit que les seuls sur lesquels on puisse compter sont Safari et iCab

pour affiner : détecter le navigateur et compter avec présence scrollbars
(voir chez Talbot Gérard)

IE5 1 ou 2 pour Mac ne passent pas mon test ! :-(


Génial ! J'ai rien compris au code -- à cette heure, non commenté, et vu
mon niveau, ça aide super pas, comme disent les d'jeunz :-) -- mais
c'est ce que je recherche effectivement !

Viele Danke !

Avatar
ASM
Jean-François Hicter wrote:
bon ... alors ... tu ne souffres pas trop de lenteurs ?


il n'y a que MPlayerX qui suive la cadence ; et encore... dès que ça
speed, ça saccade... :-(


ouais, bon, çà n'a pas l'air de faire plus alors ...
la gamine aimerait bien pouvoir voir un DVD sans saccades :-(
(on utilise mvlc lecture video - dvd player n'a pas l'air de fonctionner)

Mais sinon pour la PAO et web, c'est jouable


Les MSN se trainent (mais c'est peut-être dû à l'usb+wifi ?)

voilà le test que j'en ai tiré :



Ha oui ! les fenetres !

http://perso.wanadoo.fr/stephane.moriaux/truc/taille_fenetre.htm
où on voit que les seuls sur lesquels on puisse compter sont Safari et
iCab

IE5 1 ou 2 pour Mac ne passent pas mon test ! :-(


Génial ! J'ai rien compris au code


C'est un bricolage ...

Comme, à ce que j'ai compris,
il y a deux methodes pour capter la place libre :

- celle pour IE (qui ne fonctionne pas avec mes IE)
(mais qui donne aussi une info avec certains autres)
document.documentElement.offsetWidth et document.documentElement.offsetHeight

- celle pour les autres (qui ne fonctionne pas non plus avec mes IE)
window.innerWidth et window.innerHeight

Que ces deux méthodes, suivant le navigateur, renvoient :
- la même chose
ou
- presque n'importe quoi
il faut donc extraire des 2 types d'infos celles de dimensions moindres

On a alors une bonne approche (sauf IE) de la taille
car cetains navigateurs omettent de compter leurs ascenseurs
De plus, d'un navigateur à l'autre, l'ascenseur est + ou - large ...
Sans compter avec les skins dont d'aucuns aiment à affubler leurs softs.

Le casse-tête quoi !

-- à cette heure, non commenté,


Le résultat de mes tests est dans le code, à la fin :-/

et vu
mon niveau, ça aide super pas, comme disent les d'jeunz :-) -- mais
c'est ce que je recherche effectivement !


Reste à savoir : c'est-y pour faire quoi ?


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Jean-François Hicter
ouais, bon, çà n'a pas l'air de faire plus alors ...
la gamine aimerait bien pouvoir voir un DVD sans saccades :-(
(on utilise mvlc lecture video - dvd player n'a pas l'air de fonctionner)


Un DVD qui saccade -- format VIDEO_TS, pas DivX ! --, le DVD Player qui
ne fonctionne pas, ça, c'est pas normal par contre... Y'a peut-être du
ménage à faire...

Les MSN se trainent (mais c'est peut-être dû à l'usb+wifi ?


Teste ton débit ici : http://www.testadsl.net/test/




Ha oui ! les fenetres !
Reste à savoir : c'est-y pour faire quoi ?


Ouais. En fait, c'est pour passer aux CSS les valeurs en question...
Si on ne renseigne pas le style de l'élément BODY avec une valeur en
dur, tout ce qui suit -- les TABLE à 100 %, etc. -- n'est pas pris en
compte. Pour centrer verticalement un contenu *dynamique*, c'est
indispensable d'avoir cette valeur en dur *obtenue dynamiquement par le
procédé JS / PHP* dont il est ici question...

En fait, c'est parce que je n'arrive pas à passer le JS aux CSS...
Mais peut-être que c'est tout à fait possible et que quelqu'un va me
l'apprendre ! La vie est tellement surprenante, parfois ! :-)

Avatar
Olivier Miakinen

voilà le test que j'en ai tiré :
http://perso.wanadoo.fr/stephane.moriaux/truc/taille_fenetre.htm
où on voit que les seuls sur lesquels on puisse compter sont Safari et iCab


Résultats sur Windows 2000, pour la hauteur.
- Mozilla 1.6 : exact
- Firefox 1.0.6 : exact
- Internet Explorer 6 : 4 pixels de trop

Je ne peux pas vérifier pour la largeur, car la hauteur du div (800 px)
est trop grande pour supprimer l'ascenseur vertical, même en maximisant
la fenêtre.

pour affiner : détecter le navigateur et compter avec présence scrollbars
(voir chez Talbot Gérard)


Ok.

Avatar
ASM
Jean-François Hicter wrote:
Ha oui ! les fenetres !
Reste à savoir : c'est-y pour faire quoi ?



Ouais. En fait, c'est pour passer aux CSS les valeurs en question...
Si on ne renseigne pas le style de l'élément BODY avec une valeur en
dur, tout ce qui suit -- les TABLE à 100 %, etc. -- n'est pas pris en
compte. Pour centrer verticalement un contenu *dynamique*,


Le centrage vertical est un gros soucis en CSS2
http://perso.wanadoo.fr/stephane.moriaux/truc/gn/exo/00.shtml
en particulier pour IE qui débilise sur les calculs de hauteur de fenêtres
(et même en css il est perdu, encore qu'il paraît qu'il y a des hacks
pour le béquiller du genre : height: 1%;)

Tout dépend de ce que tu veux centrer.
Si c'est une image, çà va on peut récupérer sa taille.
Mais pour un pavé de texte (qui peut être + ou - gros suivant le visiteur)
je ne vois pas comment calculer sa taille
(en hauteur, car en largeur on peut la fixer)
... je suis loin de m'inquiéter de la taille de la fenêtre ...

c'est
indispensable d'avoir cette valeur en dur *obtenue dynamiquement par le
procédé JS / PHP* dont il est ici question...


toujours pas compris l'interet du PHP
(sans doute parceque je ne m'en sers pas ?)

En fait, c'est parce que je n'arrive pas à passer le JS aux CSS...


Heu ?

Mais peut-être que c'est tout à fait possible et que quelqu'un va me
l'apprendre ! La vie est tellement surprenante, parfois ! :-)


Centrer une image :
==================
methode javascript + css :

<html>
<body style="background:#999">
<div id="centreur"
style="position:absolute;width:1px;height:1px;top:50%;left:50%">
<img src="photo.jpg"
style="padding:10px;background:white;border:5px outset goldenrod;"
onload="var w=this.width;
var h=this.height;
this.style.marginTop = -(h/2)+'px';
this.style.marginLeft = -(w/2)+'px';" />
</div>
</html>

methode html :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3c.org/TR/REC-html40/loose.dtd">
<head>
<title>ma photo</title>
</head>
<body style="text-align: center;background:#ffc;">
<table height="100%" style="margin:auto;">
<tr>
<td>
<table border="5" bordercolor="gold" style="background:yellow;border: 5px outset gold;">
<tr>
<td style="background:white;border:3px solid;border-color: #777 #ccc #ccc #777;">
<img src="photo.jpg" alt="">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

Adapter et centrer une image :
============================= (en supposant que çà se passe dans un popup avec status seulement)
(et en admettant des erreurs minimes)
(et en admettant qu'enfin Opera se débrouille avec onload sur une image)

à l'étude :-)


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
ASM
Olivier Miakinen wrote:

voilà le test que j'en ai tiré :
http://perso.wanadoo.fr/stephane.moriaux/truc/taille_fenetre.htm
où on voit que les seuls sur lesquels on puisse compter sont Safari et iCab



Résultats sur Windows 2000, pour la hauteur.
- Mozilla 1.6 : exact
- Firefox 1.0.6 : exact


Ha ha !? y a encore un nouveau FF de sorti ?

- Internet Explorer 6 : 4 pixels de trop


y a donc un IE qui y arrive ?

Je ne peux pas vérifier pour la largeur, car la hauteur du div (800 px)
est trop grande pour supprimer l'ascenseur vertical, même en maximisant
la fenêtre.


Le div (trop grand) est là essspres pour justement avoir les ascenceurs.
(sinon ce s'rait trop fastoche !)

Alorsse ... la largeur ?


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Olivier Miakinen

Résultats sur Windows 2000, pour la hauteur.
- Mozilla 1.6 : exact
- Firefox 1.0.6 : exact


Ha ha !? y a encore un nouveau FF de sorti ?


C'était avant mes vacances, alors ça me semble une éternité... en
juillet dernier il me semble.

- Internet Explorer 6 : 4 pixels de trop


y a donc un IE qui y arrive ?


Eh oui, modulo ces 4 pixels.

Je ne peux pas vérifier pour la largeur, car la hauteur du div (800 px)
est trop grande pour supprimer l'ascenseur vertical, même en maximisant
la fenêtre.


Le div (trop grand) est là essspres pour justement avoir les ascenceurs.
(sinon ce s'rait trop fastoche !)


C'est dommage : pour rajouter un ascenseur, il suffit de diminuer la
taille de la fenêtre, alors que pour le supprimer on est limité par la
résolution de l'écran. Tu limites donc volontairement la portée de tes
tests.

L'apparition ou la disparition de l'ascenseur horizontal ne change
strictement rien à la valeur calculée pour la hauteur disponible, que
ce soit sous Moz, Fx ou IE.

Finalement, j'ai réussi à virer l'ascenseur vertical pour Mozilla, et le
résultat est le même : valeur correcte au pixel près sans ascenseur,
mais l'apparition de l'ascenseur ne change pas le résultat.

Alorsse ... la largeur ?


Pour IE, comme je ne peux pas comparer avec ou sans ascenseur, je suis
incapable de t'en dire plus. Juste que « ascenseur ± erreur = 20 px ».
Bon, il se trouve que pour la hauteur j'ai aussi 20 px de trop avec
ascenseur au lieu de 4px, je suppose donc que les deux ascenseurs ont
une épaisseur de 16 pixels.

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


Avatar
Jean-François Hicter
Le centrage vertical est un gros soucis en CSS2
http://perso.wanadoo.fr/stephane.moriaux/truc/gn/exo/00.shtml


Ça marche pas avec Safari !
Ton code me claque une *erreur #11* ???

en particulier pour IE qui débilise sur les calculs de hauteur de fenêtres
(et même en css il est perdu, encore qu'il paraît qu'il y a des hacks
pour le béquiller du genre : height: 1%;)

Tout dépend de ce que tu veux centrer.


Un bloc entier : un TABLE.CONTAINER ou une DIV.CONTAINER...
Le problème, c'est que ce container est alimenté dynamiquement en PHP,
donc, sa hauteur varie... J'ai vu des méthodes pour centrer un bloc en
CSS2 mais ce bloc doit être de cotes fixes.

Si c'est une image, çà va on peut récupérer sa taille.
Mais pour un pavé de texte (qui peut être + ou - gros suivant le visiteur)
je ne vois pas comment calculer sa taille


Here it is... :-)

(en hauteur, car en largeur on peut la fixer)
... je suis loin de m'inquiéter de la taille de la fenêtre ...

c'est indispensable d'avoir cette valeur en dur *obtenue dynamiquement
par le procédé JS / PHP* dont il est ici question...



toujours pas compris l'interet du PHP
(sans doute parceque je ne m'en sers pas ?)


Dans la définition des CSS, tu peux renseigner une variable par du PHP.
Exemple : body { height: <?php print($_GET[h]."px"); ?> }
Ici, la variable h, passée en URL par la méthode GET, est assignée à la
hauteur du BODY.





En fait, c'est parce que je n'arrive pas à passer le JS aux CSS...
Heu ?

Mais peut-être que c'est tout à fait possible et que quelqu'un va me
l'apprendre ! La vie est tellement surprenante, parfois ! :-)



Centrer une image :
================== >
methode javascript + css :

<html>
<body style="background:#999">
<div id="centreur"
style="position:absolute;width:1px;height:1px;top:50%;left:50%">
<img src="photo.jpg"
style="padding:10px;background:white;border:5px outset goldenrod;"
onload="var w=this.width;
var h=this.height;
this.style.marginTop = -(h/2)+'px';
this.style.marginLeft = -(w/2)+'px';" />
</div>
</html>


Marche pas sur Safari : 10 px trop basse.
Idem avec DTD XHTML strict !




methode html :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3c.org/TR/REC-html40/loose.dtd">


Marche pas avec une DTD XHTML strict !

Ne me demande pas pourquoi je code en XHTML strict, stp !
On m'a dit que c'était l'avenir blah blah blah, c'est sérieux blah blah,
ça verouille le bordel, etc. !
Mouais ! Si tout le monde utilise une DTD différente, on va pas s'en
sortir...


Donc, en résumé, la seule méthode qui marche quelque-soit la DTD -- et
avec un container de hauteur variable -- semble être le passage de la
variable en PHP, isn't it ?



<head>
<title>ma photo</title>
</head>
<body style="text-align: center;background:#ffc;">
<table height="100%" style="margin:auto;">
<tr>
<td>
<table border="5" bordercolor="gold"
style="background:yellow;border: 5px outset gold;">
<tr>
<td style="background:white;border:3px solid;border-color:
#777 #ccc #ccc #777;">
<img src="photo.jpg" alt="">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

Adapter et centrer une image :
============================= > (en supposant que çà se passe dans un popup avec status seulement)
(et en admettant des erreurs minimes)
(et en admettant qu'enfin Opera se débrouille avec onload sur une image)

à l'étude :-)





1 2 3