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 非常简单:
function tab_click(f){
alert(f);
}
关键部分在这里:
echo '<li class="a" onclick="tab_click('.$letter.')">'.$letter.'</li>';
这不可能成功!所以我把它改成这样:
$test = 123;
echo '<li class="a" onclick="tab_click('.$test .')">'.$letter.'</li>';
它工作得很好,页面显示了 123!我想知道为什么会出现这种情况?我检查了html代码,没问题:
<li class="navi_letter_leftb" id="li_A" onclick="tab_click(A)">A</li>
好吧,我不知道为什么?
最佳答案
您需要在 JavaScript 中为字符串参数添加额外的引号:
echo '<li class="a" onclick="tab_click(\''.$letter.'\')">'.$letter.'</li>';
在您的测试用例中$test = 123;
您传递的是一个整数,因此不需要引号。
编辑
不带引号的输出(无效的 JavaScript):
<li class="a" onclick="tab_click(a)">a</li>
带引号的输出:
<li class="a" onclick="tab_click('a')">a</li>
关于php - 如何将php参数传递给javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822686/