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

您的初始<a href=值没有关闭,并且 PHP 代码在命令中没有被很好地引用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 回答