2010-06-12 2 views

ответ

2

PHP и JavaScript не могут смешиваться напрямую. Вы используете PHP-сервер для генерации и отправки JavaScript клиенту. JavaScript выполняет клиентскую сторону и может связываться с кодом PHP на сервере только через вызовы AJAX. Это можно значительно упростить с помощью библиотеки AJAX, такой как jQuery.

2

Вы должны помнить, что ваш PHP-код оценивается на сервере, а JavaScript (обычно) выполняется в браузере. Оценки происходят в разное время, в разных местах. Поэтому вы не можете вызывать функцию JavaScript (или переменную) из PHP, просто потому, что вы не можете вызвать функцию, существующую на другом компьютере.

Возможно, вы захотите проверить, подходит ли решение Ajax.

3
<script> 
    var foo = <?php echo $foo; ?>; 
    // or, if foo is a string; 
    var foo = '<?php echo addslashes($foo); ?>'; 
    // for anything more complex, you'll need to use json_encode, if available in your version of PHP 
    var foo = <?php echo json_encode($foo); ?>; 
</script> 

Обратите внимание, что вы можете сделать это только одним способом. Не ожидайте каких-либо изменений, которые вы вносите в javascript, чтобы перейти на PHP.

1

Как правило, вы не можете. PHP является серверной, а Javascript - клиентской (обрабатывается браузером).

Исключением является использование AJAX, который позволяет вам получить доступ к страницам PHP, которые затем должны выполнить требуемое действие.

+1

На самом деле, AJAX не является исключением. –

1

Для этой цели вы можете использовать JSON, который также служит для отправки большого массива в Javascript из PHP. Нам нужно выполнить эхо-код JavaScript в скрипте PHP, или мы можем использовать Ajax для этого. Но обычно нам может понадобиться отправить большой массив. Таким образом, мы можем сделать, как этот

<script> 
    <?php 
     $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 
    ?> 
    var foo = echo json_encode($arr); 
</script> 

The json_encode функция будет обрабатывать все вылетающие и другие вопросы. Ошибка также убедитесь, что json_encode доступен в вашей версии PHP.

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