0

目標は、1 つのページに複数の画像を掲載し、一般の人々がそれらに投票できるようにすることです。次に、投票ボタンを削除し、投票に感謝するAJAXコマンドがあります..各画像のHTMLを手動で入力すると機能しますが、値を配列に入れてPHPに実行させたい場合コード それは動作を停止します。

私はクロムを使用し、ネットワークタブの下でF12を見て、上または下をクリックすると、「Uncaught SyntaxError: Unexpected token }」と表示されます

「」と「」の組み合わせに関係があると思います...

両方の方法で同じエラーを試しました。「 」を使用して変数をラップすると、変数は変更されません...

" " を使用して変数をラップすると、ページは解析されますが、同じ Uncaught 構文エラーが発生します。

2行目に解析エラーが発生するだけの eval($output) を使用してみました...

うまくいけば、これは十分に明確です。どんな助けでも大歓迎です!

<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 つの異なるコンマ区切り値を含む 1 つの文字列を渡していますが、関数定義では2つのパラメーター値が必要です。

于 2013-04-19T19:36:30.707 に答える