2

関数を実行すると同時にページを開くリンクを作成しようとしています#item-infoが、うまくいきません。(私は # がある理由である JQuery を使用しています)

問題を引き起こしている部分はjavascript関数のようですupdateItem(item, type, stock)

<?php       
for ($row = 0; $row < $arrlength; $row++)
{
    echo "<li>";
    echo "<a href='javascript:updateItem($items[$row]["Item"], $items[$row]["Type"], $items[$row]["Stock"]); #item-info'";   
    echo $items[$row]["Item"];
    echo "</a>"; 
    echo "</li>";
}
?>

引用符の使用に問題があると思いますが、何が間違っているのかよくわかりません。

4

4 に答える 4

4

onclick イベントを使用してみてください。

<?php       
for ($row = 0; $row < $arrlength; $row++)
{
    echo "<li>";
    echo "<a href='#item-info' onclick='updateItem(\"".$items[$row]["Item"]."\", \"".$items[$row]["Type"]."\", \"".$items[$row]["Stock"]."\");'>";   
    echo $items[$row]["Item"];
    echo "</a>"; 
    echo "</li>";
}
?>
于 2013-03-16T22:49:27.233 に答える
1

あなたのイニシャルは閉じられていません & PHPコードはコマンド<a href=内で実際にはうまく引用されていません:echo

<?php       
          for ($row = 0; $row < $arrlength; $row++)
          {
              echo "<li>";
              echo "<a href='javascript:updateItem(" . $items[$row]["Item"] . ", " . $items[$row]["Type"] . ", " . $items[$row]["Stock"] . "); #item-info'>";   
              echo $items[$row]["Item"];
              echo "</a>"; 
              echo "</li>";
          }
?>

しかしsprintf、引用符を追跡するのに夢中になるのを避けるために、私はこのようなことをすることを好みます:

<?php       
          for ($row = 0; $row < $arrlength; $row++)
          {
              echo "<li>";
              echo sprintf("<a href='javascript:updateItem(%s,%s,%s; #item-info'>", $items[$row]["Item"], $items[$row]["Type"], $items[$row]["Stock"]);   
              echo $items[$row]["Item"];
              echo "</a>"; 
              echo "</li>";
          }
?>
于 2013-03-16T22:50:42.630 に答える
0

文字列変数と同じように、文字列内で連想配列を使用することはできません。代わりに連結を使用します。

<?php       
          for ($row = 0; $row < $arrlength; $row++)
          {
              echo "<li>";
              echo "<a href='javascript:updateItem(" . $items[$row]["Item"] . "," . $items[$row]["Type"] . "," . $items[$row]["Stock"] . "); #item-info'";   
              echo $items[$row]["Item"];
              echo "</a>"; 
              echo "</li>";
          }
?>
于 2013-03-16T22:47:01.177 に答える
-1

updateItem() が呼び出されるときは、window.location.href を使用します。引用符の問題については、パラメーターを一重引用符または二重引用符で囲んで updateItem()

Update のようなものを使用し、update を次のように定義します。

function updateItem(url) {
// do work updating here, etc.
// ---
// next, redirect
window.location.href=url;
}
于 2013-03-16T22:50:08.030 に答える