2013-03-16 59 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>"; 
      } 
?> 
相关问题