如何将php参数传递给javascript [英] how to pass php parameter to javascript
问题描述
可能重复:
将php变量值传递给javascript
Possible Duplicate:
pass php variable value to javascript
我有一段php代码
function formLetterTabPage($redirect_url, $letter){
$test = 123;
foreach (range('A','Z') as $val) {
if($val == $letter){
echo '<li class="a" id="li_'.$letter.'" onclick="tab_click('.$letter.')">'.$letter.'</li>';
}else{
echo '<li class="b" id="li_'.$val.'" onclick="tab_click('.$letter.')">'.$val.'</li>';
}
}
}
和我的javascript函数tab_click非常简单:
and my javascript function tab_click is quite simple:
function tab_click(f){
alert(f);
}
关键部分在这里:
echo '<li class="a" onclick="tab_click('.$letter.')">'.$letter.'</li>';
无法解决!所以我这样修改它:
it cannot work out ! so I change it like this:
$test = 123;
echo '<li class="a" onclick="tab_click('.$test .')">'.$letter.'</li>';
可以正常工作,页面显示123!我不知道为什么会这样?然后我检查了html代码,没关系:
it works perfert, and the page show me 123! I wonder why this happen? And I checked the html code, it ok:
<li class="navi_letter_leftb" id="li_A" onclick="tab_click(A)">A</li>
好吧,我不知道为什么吗?
ok, I don't know why?
推荐答案
您需要在JavaScript中为字符串参数添加其他引号:
You need additional quotes in your javascript for string parameters:
echo '<li class="a" onclick="tab_click(\''.$letter.'\')">'.$letter.'</li>';
在测试用例$test = 123;
中,您传递的是整数,因此不需要引号.
In your test case $test = 123;
you are passing an integer, so the quotes are not needed.
编辑
不带引号的输出(无效的javascript):
Output without quotes (invalid javascript):
<li class="a" onclick="tab_click(a)">a</li>
带引号的输出:
<li class="a" onclick="tab_click('a')">a</li>
这篇关于如何将php参数传递给javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!