2013-03-11 109 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>