2016-04-18 3 views
-1

Я разрабатываю веб-приложение в php, и я много раз использовал javascript. Теперь мне нужно использовать переменную php в javascript. Например, переменная, сгенерированная из запроса SQL-запроса, или переменная сеанса, которые необходимы в разделе javascript.Как использовать переменную PHP в Javascript

Каков наилучший способ использования переменной php в javascript?

+6

Если переменная PHP не является массивом 'var name = ; 'если это массив, тогда' var name = ; ' – JiteshNK

+0

Thank you @ JiteshNK –

ответ

6

Может быть, вы могли бы сделать что-то вроде:

<script> 
    var a = <?php echo $a; ?>; //for numbers 
</script> 

Это один основной способ достижения того, что вы хотите.

EDIT: Как JiteshNK также отметил, вы также можете сделать:

<script> 
    var a = <?php echo json_encode($a); ?>; //safest solution 
</script> 
+1

Обратите внимание, что первый параметр работает только для числовых значений , все остальное (включая строки) приведет к ошибке. – jeroen

+1

@jeroen, правда. Вы можете обернуть теги php в кавычки. – Chris

+2

Не совсем, что, если строка содержит кавычки? 'json_encode()' является лучшим/единственным вариантом. Обратите внимание, что 'json_encode()' будет помещать кавычки вокруг строки и избегать любых кавычек в ней. – jeroen

0

Если его простая переменная строка затем использовать.

<script> 
    var a = "<?php echo $var; ?>"; 
</script> 

Если переменная PHP является массив, то

var resultArray = <?php echo json_encode($varArr); ?> 

// Use resultArray values in javascript 
$.each(resultArray, function(index, value) { 

} 
+0

Если это простая строковая переменная, чем 'var a = 'не будет работать. Строка будет либо рассматриваться как имя переменной, либо (если она содержит, например, пробелы) синтаксическую ошибку. – Quentin

-1

Я не совсем понимаю, что вы пытаетесь сделать. В принципе, я не знаю, что вы хотели бы сделать, это возможно. Причина: JavaScript работает в браузере. В то время, когда выполняется ваш код JavaScript, страница уже загружена. В то время больше нет такой возможности, как PHP. Ваш браузер знает только о HTML. PHP работает на сервере и используется для «построения» или «сборки» или «компиляции» вашей HTML-страницы. Что вы определенно можете сделать: вы можете использовать PHP для создания своего JS-кода динамически (например, вы уже делаете это с вашим HTML-файлом), и там используется PHP для заполнения JS-переменной содержимым переменной PHP.

+1

То, что вы говорите, правильно, но php может вывести переменную в тег скрипта при создании документа, как вы выразились. Тогда js будет иметь эту переменную, когда она будет выполняться. – Chris

+0

Ну, не совсем. это не переменная PHP.Это переменная JS, которая может иметь одно и то же имя и имеет такое же значение. Но в то время переменная PHP больше не существует. Если JS изменяет значение переменной, то нет обратной связи с какой-либо переменной PHP, поскольку она больше не существует. Важно понять это, чтобы понять, почему вы не можете использовать переменные PHP в JS. Кстати, если вы отклонили мой ответ, не могли бы вы объяснить, почему? – TomS

+0

Здесь нет никакого интереса, чтобы «обновить» переменную php. Все, что хотел OP, заключалось в том, чтобы дать значение переменной php переменной js - передать ее, так сказать. Нет, я не спустил вниз. – Chris

1

Вы можете сделать что-то вроде этого:

Если нормальная переменная:

<script type= "text/javascript"> 
    var a = <?php echo $var; ?>; 
</script> 

ИЛИ

Если у вас есть JSON:

<script type= "text/javascript"> 
    var a = <?php echo $json_encode($var); ?>; 
</script> 
+0

Если это «нормальная переменная», что бы это ни значило, чем «var a = 'не будет работать. Строка будет либо рассматриваться как имя переменной, либо (если она содержит, например, пробелы) синтаксическую ошибку. Если у вас JSON, то кодирование его как JSON бессмысленно. – Quentin

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