2013-03-11 63 views
1

我试图在PHP中调用一个javascript函数,它将弹出一个确认按钮。如果用户按下是,那么它将继续到页面上,否则它将保持在同一页面上。我写了,但我不知道什么是错的。在php echo声明中调用javascript函数的参数

PHP:

echo "<a href='edit_members.php?id=$studentid'>Edit</a> or <a href=\"javascript:deleteMembers('del_member.php', '$studentid');\">Delete</a><br/><br/>"; 

的JavaScript(我把它放在标记之前右):

<script type="text/javascript"> 
    function deleteMembers(url, id) { 
     var deleteMemberConfirmation = confirm("Are you sure you want to delete?"); 
     if(deleteMemberConfirmation) { 
     window.location="http://mvcsf.com/admin/"+url+"?"+id; 
     } 
     else { 
     window.location="http://mvcsf.com/admin/view_members.php"; 
     }  
    } 
</script> 

我在页面顶部启用ERROR_REPORTING(E_ALL);,但它不返回任何东西。我做错了什么?

编辑:我将变量名更改为deleteMemberConfirmation,但仍然没有任何工作。我只是点击链接,但没有任何反应。

+0

当您加载此页面时会发生什么情况?你有空白的白屏吗?它看起来不错,但按钮不起作用?等 – octern 2013-03-11 23:01:48

回答

4

delete是JavaScript中的保留关键字,而不是有效的变量名!

和你有引号错误:

"<a href=\"javascript:deleteMembers('del_member.php', '$studentid');\">"; 
+0

+1看起来像你打败我:) – AlienWebguy 2013-03-11 23:04:04

+0

谢谢^^一切都是固定的 – Andrew 2013-03-12 16:37:12

2

你在你的HTML 并在您的JS使用'为标志。你将不得不在一个地方使用它,并在其他地方使用"

工作版本会是这样的:

echo "<a href=\"edit_members.php?id=$studentid\">Edit</a> or <a href=\"javascript:deleteMembers('del_member.php', '$studentid');\">Delete</a><br/><br/>"; 
0

为了您的回音,用单引号'和双引号"时要小心。单个报价将在符合另一个单引号时关闭,除非它像这样被转义\'。双引号也是一样。

我不是100%肯定,如果你可以使用里面HREF JavaScript的,但另一种解决方案是调用javascript函数时使用的onclick,而只是使用javascript:void(0)#HREF属性。

echo "<a href='edit_members.php?id=$studentid'>Edit</a> or <a href='javascript:void(0)' onclick=\"deleteMembers('del_member.php', '$studentid');\">Delete</a><br/><br/>"; 

至于删除,删除文字更改为其他内容(即:del),因为删除是Javascript的保留字。

<script type="text/javascript"> 
function deleteMembers(url, id) { 
    var del = confirm("Are you sure you want to delete?"); 
    if(del) { 
     window.location="http://mvcsf.com/admin/"+url+"?"+id; 
    } 
    else { 
     window.location="http://mvcsf.com/admin/view_members.php"; 
    } 
} 
</script>