2009-06-23 25 views
0

我想弄清楚如何創建一個JavaScript警告框詢問用戶是否想要刪除記錄(即他們的查看)和當用戶按下是通過PHP調用查詢來刪除數據庫行。並且如果用戶按下,則不會發生任何事情。我該如何編寫一個JavaScript警告框來給出是或否的問題並與PHP調用集成?

想知道如何可以做到這一點

感謝

PS:

這是我做的,它沒有工作。

<script type="text/javascript"> 
if(window.confirm("Are you sure you want to delete that record?")) { 
<?php 
mysql_query("delete from tbl_payments where id = '$id'") or die(mysql_error()); 
header("Location: dashboard.php"); 
?> 
} 
</script> 

回答

11
if (window.confirm("Are you sure?")) { 
    // call php code here, either through going to a new page, 
    // or by doing an ajax request 
} 

作爲更新:問題是,PHP代碼是由服務器,它不運行JavaScript的執行,以及JavaScript運行在客戶端,沒有知識PHP代碼。

這意味着PHP代碼將始終運行,只是忽略了window.prompt調用,因爲這不是PHP的一部分。由客戶端執行的JavaScript看起來簡直像這樣:

<script type="text/javascript"> 
if(window.confirm("Are you sure you want to delete that record?")) { 
} 
</script> 

這顯然什麼都不做,如果你連達到這個頁面,因爲你正在使用的Location頭髮送的用戶一個新的頁面。

你需要做的是把你寫在第二頁上的PHP代碼,並把客戶端帶到那個頁面,只有window.confirm()運行一次。事情是這樣的:

file1.php

<script type="text/javascript"> 
if(window.confirm("Are you sure you want to delete that record?")) { 
    document.location = "file2.php?id=<?php echo $_GET['id'] ?>"; 
} 
</script> 

file2.php

<?php 
$id = $_GET['id']; 
if (!is_numeric($id)) $id = -1; 
mysql_query("delete from tbl_payments where id = '$id'") or die(mysql_error()); 
header("Location: dashboard.php"); 
?> 
+0

感謝您的輸入。 – SarmenHB 2009-06-23 21:35:17

相關問題