Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Передача переменных из PHP в JS


Автор: Raily 30.3.2009, 14:50
У меня такой вопрос: Я передаю из PHP в функцию JS переменную:
Код

$str.="<a onClick='javascript:info($id,$q[$i])'><u><font color=blue>";
$str.=$q[$i]."</font></u></a>";


При этом переменная $q[$i] взята из БД (здесь используется CodeIgniter)

Код

$query = $this->db->get_where('equipments', 'id='.$id)->result();
foreach($query as $key){
        $query=$key->ip;
}
$q=explode(",",$query);


переменная $q[$i] содержит IP-адрес, то есть она содержит в себе 3 точки (например, 127.0.0.0)

Почему JS не нравится, что в её функцию передается переменная с тремя точками, то есть если я передаю переменную например 127.0, то она нормально передается, а как только в этой строковой переменной появляются ещё точки, так JS сразу ругается. Может кто знает - почему?

Поняла, что JS переменную, которая в функцию передается воспринимает как число,  а не как строковую переменную, хотя в PHP это строковая переменная. Почему такое происходит? и как передать строку, чтобы скрипт понял, что это строка, а не число?

Автор: skyboy 30.3.2009, 15:35
Цитата(Raily @  30.3.2009,  13:50 Найти цитируемый пост)
Почему такое происходит?

потому что твой PHP код генерирует следующий текст:
Код

$str.="<a onClick='javascript:info(11231654,127.0.0.1)'><u><font color=blue>";

строки в javascript, как  и в PHP, должны обрамляться кавычками при определении. Чего у тебя нет.
как в РНР выводятся строки?
Код

$var = '321321';
echo $var;

не выведет кавычки, а только значение.
Следовательно, тебе надо добавить кавычки в твой код(не забывая экранировать их при надобности):
Код

$str.="<a onClick='javascript:info($id,\"$q[$i]\")'><u><font color='blue'>";
$str.=$q[$i]."</font></u></a>";

Автор: Raily 30.3.2009, 15:57
Спасибо! Теперь всё работает! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)