0

目标是在一页上有多个图像,并允许公众对它们进行投票。然后我有一个 AJAX 命令来删除投票按钮并感谢您的投票。当我为每个图像手动键入 HTML 时,我可以让它工作,但是当我将值放入数组并希望 PHP 做代码它停止工作。

当我点击向上或向下时,我使用 chrome 并在网络选项卡下点击 F12,它显示“Uncaught SyntaxError: Unexpected token }”

我相信这与 '' 和 "" 组合有关......

我已经尝试过两种方式同样的错误。当我使用 ' ' 包装变量时,它不会改变变量......

当我使用“”来包装变量时,页面解析但相同的未捕获语法错误。

我试过使用 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");
?>
4

1 回答 1

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 个不同逗号分隔值的字符串,但您的函数定义需要两个参数值。

于 2013-04-19T19:36:30.707 回答