2014-10-24 2 views
-2

Я пытаюсь сохранить значение php в моей переменной javascript. Но этот код дает мне синтаксическую ошибку. Правильно ли код?Сохранение значения php в переменной javascript

var b = <?php echo $tagValue;?>; 
     alert("B is " +b); 
+2

это файл .js', файл '.php' или файл .js.php'? если он не является файлом '.php', это не будет работать – user2415992

+1

Также - более простой способ передать переменную PHP в Javascript будет через скрытое поле user2415992

+0

« этот код дает мне синтаксическую ошибку »и почему не нужно, Вы публикуете свою ошибку? – Dinistro

ответ

3

Вы должны убедиться, что ваш веб-сервер интерпретирует этот файл как файл php. то вы должны адаптировать свой код, потому что это выглядит, как вы могли бы иметь ошибку в коде JS в конце концов:

var b = "<?php echo $tagValue;?>"; 
alert("B is " +b); 

(я добавил кавычки). Не применяется, если вы уверены, что $tagValue является только числовым.

В случае, если вы действительно не знаете, какую ценность вашего $tagValue есть или вы просто хотите, чтобы убедиться, что вы не подведете, вы должны использовать json_encode($tagValue):

var b = <?php echo json_encode($tagValue);?>; 
alert("B is " +b); 

Пожалуйста, обратите внимание, что в случае $tagValue является массив/объект, ваш js-alert не будет очень полезен :)

+1

Вы должны упомянуть, что переменная, содержащая символ двойной кавычки, нарушит синтаксис вывода javascript. Кодирование JSON намного безопаснее. –

-1

сделать функцию, возможно, может помочь u. это пример

// your php code 
$tagValue = 'value'; 
getValue($tagValue); 
+0

Это не отвечает на вопрос. – dawez

1

Самый простой способ я нашел, чтобы сделать это, не беспокоясь о характер побега или XSS, чтобы преобразовать содержимое переменной JSON. Все, что требуется, - echo json_encode ($ tagValue); вместо echo $ tagValue;

Смежные вопросы