2009-12-21 11 views
0

Désolé mes dieux, mais ....variable PHP à JS - plus et plus

je php, fichier, et dans ce php i définir la langue, et inclure le fichier nécessaire lang:

... 
    if ($lan=='ge') {$_SESSION['lang']='german';...} 
    if ($lan=='en') {$_SESSION['lang']='english'; ....} 
    } 
    if ($_SESSION['lang']=='english'){ 
    include ..english 
    }else{ 
    include ...german 

    } 

J'utilise Yshout sur mon site, et je veux le rendre multilingue. Dans le fichier JS, le développeur utilise un texte que je dois faire en multilangue.

donc dans le fichier JS la première ligne:

`<?php header('Content-type: text/javascript');?> 

Et dans le php:

<script src="/js/yshout.php" type="text/javascript"></script> 

je peux maintenant utiliser PHP dans le fichier JS. Donc, j'essaie d'utiliser à la place du texte fixe. Mais pas de résultats, 'coz JS don sait $ variable de texte. Si j'inclus le fichier de langue dans le JS alors OK, mais je dois inclure le fichier de langue necessery, ceci ne fonctionne pas, 'coz JS ne connaît pas le $ _SESSION [' lang '] variable quand il s'exécute.

Quelle est la manière la plus simple de dire à JS quel fichier de langue doit être inclus et comment puis-je faire cela?

Merci

Répondre

2

Lorsque le client demande /js/yshout.php un (complètement) nouvelle instance de php est créé sur le serveur pour gérer cette nouvelle requête. Cette nouvelle instance ne partage pas les variables de l '"ancienne" instance qui a servi la requête pour le document html (y compris l'élément < script ... src = "yshout.php" >).
Par conséquent, si vous souhaitez accéder aux données de session, vous devez appeler à nouveau session_start() et (comme vous l'avez déjà remarqué) affecter des valeurs à toutes les variables que vous souhaitez utiliser.

+0

merci pour cette explication correcte! – Holian

0

Plutôt que d'utiliser Js d'inclure vos fichiers, vous devez utiliser PHP et modifier votre script. Et parce que vous avez mis en ligne suivante dans le fichier Js, mais le code est celui de PHP, il ne sera pas exécuté:

<?php header('Content-type: text/javascript');?> 
Questions connexes