目标是在一个页面上放置多个图像,并允许一般公众对它们进行投票。然后我有一个AJAX命令删除投票按钮并说谢谢你的投票..我可以在我为每个图像手动输入HTML时工作,但是当我将值放入数组并希望PHP做代码停止工作。
当我单击向上或向下时,我使用chrome并在网络选项卡下点击F12外观,它显示“Uncaught SyntaxError:Unexpected token}”
我认为这与''和''组合有关...
我试过两种方式同样的错误。当我使用''来包装变量时,它不会改变变量......
当我使用“”来包装变量时,页面解析但是同样的Uncaught语法错误。
我尝试过使用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");
?>
答案 0 :(得分:0)
是的,您的代码中确实存在错误匹配的'
和"
。您实际上是在合并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个不同的逗号分隔值,但您的函数定义需要 TWO 参数值。