Appel en Javascript avec paramètres vers Php

Fermé
francoisch Messages postés 258 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 16 février 2015 - 18 déc. 2007 à 10:24
francoisch Messages postés 258 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 16 février 2015 - 18 déc. 2007 à 19:02
Bonjour

Je veux appeller une CSS en lui passant une variable calculée en Javascript par une fonction width().

Voici ce qui n’appelle pas la CSS :
[code]
En JS: document.write('<link rel="stylesheet" href="style00.php?parm1=' + width() + '" media="screen" />');
[/code]
et pourtant la valeur calculée par width existe et est correcte.

Voici ce qui appelle la CSS mais en passant une valeur fixe :
[code]
<link rel="stylesheet" href="style00.php?parm1=1200" media="screen" />
En JS: document.write('<link rel="stylesheet" href="style00.php?parm1=1200" media="screen" />');

[/code]

Conclusions:
- la CSS existe et peut être appellée
- l'appel ne fonctionne pas en passant la variable

Ai-je une erreur de syntaxe JS?
L’interpreteur JS de mon hébergeur est-il en cause ?

Merci par avance de vos suggestions et de votre aide.

Francois
A voir également:

6 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 déc. 2007 à 13:33
Bonjour,

Tu es bien sur que tu fais appel à du javascsript dans les deux cas ? Dans le cas ou ca marche, tu n'as pas simplement mis la balise HTML dans le code directe de la page, tu es passé par ta fonction javascript quand même (bien que la valeur soit fixe) ?

Je demande ça parce que le javascript n'est pas exécuté sur le serveur mais chez le client, donc après l'interprétation de ton code par le serveur.
Donc soit ce n'est pas possible de cette manière là, soit tu as peut etre une configuration (dans ton navigateur) qui bloque ton code javaascript, et du coup ca ne charge pas le css correctement.
0
francoisch Messages postés 258 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 16 février 2015 6
18 déc. 2007 à 13:49
bonjour et merci de ta réponse.

Oui, j'ai indiqué "En JS:" pour bien préciser quand j'avais exécuté en javascript.

Par ailleurs, j'ai déjà appelé du Php en passant des paramètres depuis du JS de cette manière, mais, là, j'appelais avec Href.

Ici, j'appelle avec Link, puisque j'appele une CSS.

Link aurait-il des limitations?

Francois
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
18 déc. 2007 à 14:52
Je sais qu'Href permet de recharger la page, donc tout est correctement raffraichit, mais insérer un css via javascript je ne suis pas sur du tout que ca fonctionne.
Mais si dans le cas ou tu as passé ton css en dur dans ta fonction, tu css est correctement affiché en fonction de la largeur de ta page, c'est que ca fonctionne.

Revenons en à ton problème : le fait que ca ne marche pas en passant une variable.
As-tu essayer d'afficher (via un alert() ) la valeur de la variable ? Ca permettrait de savoir si déjà la valeur est correcte dans la fonction.
Ensuite comme je t'ai dit, ca peut venir de la configuration de ton navigateur, autorise tu les scripts javascript ?
0
francoisch Messages postés 258 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 16 février 2015 6
18 déc. 2007 à 16:59
bonjour

Oui, j'ai fait un Alert et la valeur de la variable est correcte.

Aussi, je viens de faire un essai avec:
[code]
<script language="JavaScript" type="text/javascript">
function widthtoto()
{
widtha = 1024;
return(widtha);
}
document.write('<link rel="stylesheet" type="text/css" href="style00.php?parm1=' + widthtoto() + '" media="screen" />');
</script>
[/code]
et ça a donné le résultat négatif habituel.

Donc, même en éliminant un éventuel pb de calcul de la valeur, l'appel ne se fait pas correctement.

Au besoin:
- mon URL: http:cegvh1.free.fr/
- la CSS: style00.php

Merci de ton aide.

Francois
0

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

Posez votre question
francoisch Messages postés 258 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 16 février 2015 6
18 déc. 2007 à 17:54
Qqes tests plus tard:
- l'appel passe bien avec une valeur fixe (contrairement à ...)
- par contre, mon idée actuelle est que width() produit une valeur vide faute d'avoir pu trouver ses données de base (document.body, ...) placé où il est dans le Head.

Reste à trouver une solution.

Francois
0
francoisch Messages postés 258 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 16 février 2015 6
18 déc. 2007 à 19:02
Et pourquoi pas appeler ma CSS deux fois, une fois dans le Head pour tout ce qui est fixe et une autre fois, juste après le Body, pour tout ce qui est variable?

J'ai essayé, ça a bonne mine.

Qu'en pensez vous?

Francois
0