有趣。我有2个链接调用2个JS函数-第一个起作用,第二个不起作用。仅当参数为空时才调用函数addns()。否则不...

PHP:

 while ($row_mem = mysqli_fetch_array($mem)) {
 $membs[] = $row_mem['username'];
 $membs_id[] = $row_mem['user_id'];

 }

 }

 //FIRST FOREACH CALL PROPERLY
 foreach($membs_id as $val_id) {
 echo"<a href='javascript:addms($val_id)'><img src='$pcheck' width='66' height='68'
 border='1' class='currmem'/></a>&nbsp;";
 }


//THIS ONE DOESN'T
foreach($membs as $mes_id) {
echo"<a href='javascript:addns($mes_id)'>$mes_id</a>&nbsp;";
}


JS:

 function addms(msid) {
 var addm = msid;
 alert(addm);
 }

function addns(nsid) {
var addn = nsid;

alert(addn);




}


我看不到任何错误-感谢您的评论!

最佳答案

更新以匹配新答案:

您需要在变量周围加上引号。 ($val_id)可能有效,因为您正在检索一个我猜是整数的id,因此它是有效的JavaScript文字。

($mes_id)可能不起作用,因为您返回的是字符串,但没有用引号引起来,因此它们不是有效的JavaScript文字。

所以用户名将是joe和shmoe,javascript becoems
addns(joe)addns(shmoe),可能不是您想要的。您需要addns("joe")addns("shmoe")

另请注意,一旦用户修复,这是一个XSS漏洞,如果用户可以选择其用户名。

10-08 16:21