簡體   English   中英

打開新頁面並在同一href鏈接中執行javascript

[英]Open new page and execute javascript in the same href link

我正在嘗試建立一個鏈接,該鏈接將執行一個功能並同時打開#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>";
}
?>

我認為問題在於報價用法,但我不太確定自己在做什么錯。

嘗試使用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>";
}
?>

您的初始<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>";
          }
?>

您不能以與字符串變量相同的方式在字符串內部使用關聯數組。 改用串聯:

<?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>";
          }
?>

調用updateItem()時,請使用window.location.href。 至於引號問題,請對參數使用單引號或雙引號將其用於updateItem()

使用類似Update之類的東西,並將update定義為:

function updateItem(url) {
// do work updating here, etc.
// ---
// next, redirect
window.location.href=url;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM