Передача переменных из PHP в JS!

Здравствуйте, подскажите, пожалуйста, как в MODX можна передать переменную из PHP в JavaScript.

Таким вот образом

var sessionId = "<?php echo $session; ?>";

вроде не получается!
Спасибо!
Вадим Собчук
26 мая 2013, 17:57
modx.pro
1
3 302
0

Комментарии: 5

Алексей Карташов
26 мая 2013, 22:58
0
Где-нибудь в сниппете:
<script>
	window.variableName = "<?php echo $variableName; ?>";
</script>
ПОСЛЕ вызова сниппета (инлайновый скрипт либо из подключенного файла):
console.log(variableName);
    Василий Наумкин
    27 мая 2013, 06:45
    0
    Для регистрации скриптов на фронтенд из php есть специальные функции regClientScript и regClientStartupScript.

    Твоя задача решается так:
    $modx->regClientStartupScript('
    	<script type="text/javascript">
    		var sessionId = "'.$session.'";
    	</script>
    ', true);

    После загрузки страницы ты увидишь это в ее исходном коде, только вместо $session будет реальное значение.
      Вадим Собчук
      27 мая 2013, 15:28
      0
      Спасибо большое за подсказку — работает, только в js дальше идёт большой кусок кода, с функциями разными и т.д. после чего страница выдает ошибки. Может ли это быть связано с экранированием кавычек?
        Василий Наумкин
        27 мая 2013, 15:53
        0
        Да, конечно.
          Вадим Собчук
          27 мая 2013, 17:25
          0
          Вот сниппет в котором вызов js кода… работает только первые 3 строчки javascriptа (проверял через alert — выводит переменные, которые формируются в php), но дальше не работает. Может я экранирование неправильно сделал? подскажите пожалуйста!
          <?php
          require_once MODX_CORE_PATH. 'SDK/OpenTokSDK.php';
          require_once MODX_CORE_PATH. 'SDK/OpenTokArchive.php';
          require_once MODX_CORE_PATH. 'SDK/OpenTokSession.php';
          $apiObj = new OpenTokSDK( API_Config::API_KEY, API_Config::API_SECRET );
          $session = $apiObj->createSession( $_SERVER[«REMOTE_ADDR»] );
          $sessionId = $session->getSessionId();
          $token = $apiObj->generateToken($sessionId);

          $modx->regClientStartupScript('
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5