2013-03-16 45 views
2

我試圖製作一個鏈接,它將執行一個功能並同時打開#item-info頁面,但我遇到了麻煩。 (我使用jQuery這就是爲什麼我有#)打開新頁面並在同一個href鏈接中執行javascript

這是造成這一問題的部分似乎是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

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

這會導致分析錯誤。 – Tchoupi 2013-03-16 22:50:36

+0

我們走了,這將運行該函數並更改散列,如果只有你能夠避開那些雙引號,那將是完全正確的。 – adeneo 2013-03-16 22:50:40

+0

修復了引號。 onclick事件也會尊重您可能傳入的字符串,而不是假設它們是整數。 – 2013-03-16 22:51:02

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

當updateItem()被調用時,使用window.location.href。至於報價問題,使用單個或周圍的參數的updateItem()

使用類似的更新雙引號,並定義更新爲:

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

你的回答非常含糊。你應該包含代碼來支持它。 – Tchoupi 2013-03-16 22:53:58

+0

我已經添加了一些代碼來支持我的答案。 – 2013-04-03 21:39:51

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>"; 
      } 
?> 
相關問題