投票系统拇指向上和向下故障排除

时间:2013-04-19 19:25:47

标签: php javascript ajax

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

1 个答案:

答案 0 :(得分:0)

是的,您的代码中确实存在错误匹配的'"。您实际上是在合并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个不同的逗号分隔值,但您的函数定义需要 TWO 参数值。