2013-02-18 4 views
-1

Функция JS нуждается в переменной, сгенерированной PHP. Файлы .js не могут интерпретировать строки <?php ?>, поэтому я должен передать их из .html-кода.Передайте значение javascript из php

Да, но работает JS-код из HTML считается плохой практикой (как и style элементов). Тогда что делать?

+2

Выполняйте то, что вы предлагаете: запустите JS-код из HTML – bozdoz

+0

Я думаю, вы также можете настроить apache для чтения PHP-кода в js файлы, в качестве альтернативы. – bozdoz

+0

Сделать глобальное пространство имен и ech o объект 'json_encode'd с данными, которые вам нужны. JSON закодированные строки являются действительными литералами JS-объектов, поэтому вам даже не придется разбирать их. –

ответ

1

Вы можете использовать echo, чтобы сделать что-то вроде этого:

<? echo('<script type="text/javascript">var hello="world"</script>'); 
1

Есть несколько вариантов. Во-первых, вы можете построить свой первый пример.

<?php 

$myVariable = array('key' => 'value', 'anotherKey' => 10); 

?> 

// PHP variable output in javascript's object syntax 
var phpData = <?php echo json_encode($myVariable); ?>; 

// value 
console.log(phpData.key); 
// 10 
console.log(phpData.anotherKey); 

Другим вариантом является использование запросов Ajax для скрипта PHP для извлечения данных. Исходя из вашего вопроса, этот вариант, скорее всего, не будет полезен, потому что у вас есть данные при загрузке страницы.

1

В .js файлы не могут интерпретировать <?php ?> строки

Так дайте файлу .php расширение. (Убедитесь, что вы переопределения вывода по умолчанию Content-Type РНР с header() вызова.

но работает JS код из HTML считается плохой практикой (так же, как элементы стиля).

Это потому, что встраивание JS плохо для кэширования. Если файл динамически сгенерирован, тогда вы, возможно, не сможете его кэшировать.

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