投票系统大拇指向上和向下的问题解决


Voting System Thumbs up and Down Trouleshooting

目标是在一个页面上有多个图像,并允许公众对它们进行投票。然后我有一个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:

,至少从引用方程中消除PHP角度
echo <<<EOL
...
<div id="poll{$i}" align="center">
             ^--^-- note the use of {}
<a href="#" onclick="getVote('Yes,{$shirt},poll{$i}')"> etc...
EOL;

注意你的JS调用也可能是不正确的。您正在传递包含3个不同的逗号分隔值的单个字符串,但您的函数定义期望两个参数值。