Переменная PHP в JS - снова и снова - PullRequest
0 голосов
/ 21 декабря 2009

Извините, боги, но ....

У меня есть php, файл, и в этом php я устанавливаю язык и включаю необходимый файл lang:

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

  }

Я использую Yshout на своем сайте и хочу сделать его многоязычным. В файле JS разработчик использует текст, который должен сделать его многоязычным.

Итак, в файле JS первая строка:

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

А в php:

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

Теперь я могу использовать PHP в файле JS. Поэтому я стараюсь использовать вместо текста исправления. Но никаких результатов, потому что JS не знает переменную $ text. Если я включаю языковой файл в JS, тогда ОК, но мне нужно включить нужный языковой файл, это не работает, потому что JS не знает переменную $ _SESSION ['lang'] при запуске.

Какой самый простой способ сообщить JS, какой языковой файл должен быть включен и как я могу это сделать?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 декабря 2009

Когда клиент запрашивает /js/yshout.php, на сервере создается (полностью) новый экземпляр php для обработки этого нового запроса. Этот новый экземпляр не разделяет переменные «старого» экземпляра, который обслуживал запрос для html-документа (включая элемент ).
Поэтому, если вы хотите получить доступ к данным сеанса, вам нужно снова вызвать session_start() и (как вы уже заметили) присвоить значения всем переменным, которые вы хотите использовать.

0 голосов
/ 21 декабря 2009

Вместо того, чтобы использовать Js для включения ваших файлов, вам нужно использовать PHP и модифицировать ваш скрипт. И поскольку вы поместили следующую строку в файл Js, но код соответствует PHP, он не будет выполняться:

 <?php header('Content-type: text/javascript');?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...