На главную страницу

Передача параметров из PHP в JavaScript

Вариант 1. Генерация JavaScript.

PHP просто напросто генерирует яваскрипт точно так же, как и всю остальную страницу, вместе со всеми переменными. К примеру, в PHP есть переменная $name="Вася", значение которой надо передать в JavaScript, чтобы получить:

<script>name="Вася";</script>

Мы просто пишем:

<? $name="Вася"; ?>
<script>name="<? echo $name; ?>"</script>

или при присвоении переменной "а" в JavaScript значения переменной $a из PHP:

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

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

Вариант 2. Обращение через getElementById.

Лишиться всех этих проблем можно выносом всего JS-кода в отдельный статический *.js-файл и передавать ему динамические данные через скрытые элементы форм.

<script language="javascript"?gt; 
function foo()
  { 
var a=document.formName.id1.value; 
alert('A is: '+a); 
  } 
</script> 

а в PHP-скрипте сделаем:

<form name=formName> 
<input type=hidden name=id1 value="<?php echo htmlspecialchars($var); ?>"> 
</form> 

Теперь единожды отлаженный JavaScript-код будет 1 раз подгружаться клиенту и не будет вызывать разных ошибок вызванных тем, что PHP вставил не то значение (например, Notice о неустановленной переменной $var). К тому же JavaScript-код можно многократно использовать в других WEB-страницах, передавая ему другое значение переменной a.

Hosted by uCoz