目标是在一个页面上有多个图像,并允许公众对它们进行投票。然后我有一个AJAX命令来删除投票按钮,并说谢谢你的投票。当我手动为每个图像输入HTML时,我可以让它工作,但是当我将值放入数组并希望PHP执行代码时,它停止工作。
我使用chrome并点击F12查看网络选项卡下,当我点击向上或向下,它说"Uncaught SyntaxError: Unexpected token}"
我认为这与"answers"的组合有关…
我试了两种方法相同的错误。当我使用' '来包装变量时,它不会改变变量…
当我使用" "来包装页面解析的变量,但同样的未捕获语法错误。
我已经尝试使用eval($output),只是在第2行给出一个解析错误…
希望这足够清楚。任何帮助都非常感谢!
<script>
function getVote(var1,var2)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(var2).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","poll_vote.php?vote="+var1,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?
$shirts = "C001,C002,C003,C004";
$i = 0;
foreach (explode(",",$shirts) as $shirt) {
$i++;
$output .= "
<div align='center'>
<img src='shop/images/web/$shirt.jpg' width='250' height='293'>
<br />
<div id='poll$i' align='center'>
<a href='#' onClick='getVote('Yes,$shirt,poll$i')'><img src='/images/vtu.jpg' width='50' height='64'></a>
<a href='#' onClick='getVote('No,$shirt,poll$i')'><img src='/images/vtd.jpg' width='50' height='64'></a>
</div>
<br />";
};
echo("$output");
?>
是的,您的代码中确实存在不匹配的'
和"
。你实际上是在合并3种不同的语言,每种语言使用引号的目的都不同。通过使用HEREDOC:
echo <<<EOL
...
<div id="poll{$i}" align="center">
^--^-- note the use of {}
<a href="#" onclick="getVote('Yes,{$shirt},poll{$i}')"> etc...
EOL;
注意你的JS调用也可能是不正确的。您正在传递包含3个不同的逗号分隔值的单个字符串,但您的函数定义期望两个参数值。