其他onclicks一般看起来很好,这个特殊的onclick将无法运行,我想不出原因。
HTML(来自PHP回声)
<div class=\"f_love_it\">
<button id=\"f_love_it_{$type}_{$currant_id}\" class=\"btn btn-primary\" onclick=\"love_it({$_SESSION['user_id']},{$currant_id},{$type},{$post["user_id"]})\">I Love It!
</button></div>
Pure HTML
<button id="f_love_it_comment_16" class="btn btn-primary" onclick="love_it(4,16,comment,1)">I Love It!</button>
剧本
function love_it(lover_id,loved_id,post_type,poster_id)
{
alert("You moose");
var xmlhttp = new XMLHttpRequest();
var get_request = "/lib/love.php?lover_id="+lover_id+"&loved_id="+loved_id+"&type="+post_type+"&poster_id="+poster_id;
var element_id = 'f_love_it_'+post_type+'_'+loved_id;
document.getElementById(element_id).innerHTML = 'Yup';
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(element_id).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", get_request, true);
xmlhttp.send();
}
答案 0 :(得分:1)
onclick=\"love_it({$_SESSION['user_id']},{$currant_id},{$type},{$post["user_id"]})\"
此代码段似乎包含一些PHP。检查HTML中的输出,因为它似乎不正确。你混合单引号和双引号,你拼写currant_id
,我猜应该是current_id
,除非你想要识别一个浆果。
通常,如果您的Javascript未运行,请检查浏览器中的Javascript并追溯您的PHP代码的任何错误。这比评估PHP代码和猜测错误要容易得多。您的浏览器可能有一个控制台(按F12),显示Javascript运行时错误。
<强> [编辑] 强>
在看到您添加的输出后,我得出结论:post_type
需要引用。
love_it(4,16,comment,1)
应该是
love_it(4,16,'comment',1)
所以代码应该是:
<button id=\"f_love_it_{$type}_{$currant_id}\" class=\"btn btn-primary\" onclick=\"love_it({$_SESSION['user_id']},{$currant_id},'{$type}',{$post["user_id"]})\">I Love It!
答案 1 :(得分:1)
注释是变量还是实际的字符串?
onclick="love_it(4,16,comment,1)"
如果它是一个变量,那么它是正确的,如果它是一个字符串,那么你缺少引号使它成为一个字符串。
onclick="love_it(4,16,'comment',1)"
现在,“评论”中有一个“或”,这将失败。