2016-09-20 111 views
3

我創建了一個PHP頁面以從我的數據庫中刪除。這個PHP頁面是表單提交的動作。該表單通過點擊「X」標誌圖片提交。 如何在提交表單之前要求用戶確認並從我的數據庫中刪除?提交表單前確認

這是我的代碼:

<form method='POST' action='delete.php'><input type='image' src='images/delete.png' class='del' alt='Submit Form' /> 

我試圖通過增加這對我的表單標籤做內聯,但它沒有工作:

onsubmit="return confirm('Are you sure you want to submit this form?');" 
+2

使用'onclick'作爲按鈕而不是'onsubmit'的形式。 –

+0

如果您想確認詢問確認,您需要在服務器端進行提交確認頁面(一個帶有兩個按鈕表單的新php文件,以及之前輸入的信息,當「是」時調用delete.php)被選中)。完成之後,您可以添加帶有Ajax調用的JavaScript圖層來改善用戶體驗。這種方法的優點是你的應用可以使用和不使用JavaScript。 –

+0

只是喜歡我得到多少關注*大聲笑* –

回答

2

從評論:

<form class="sendingForm" method='POST' action='delete.php'> 
<input onclick="return confirm('Please confirm!')" type='image' src='images/delete.png' class='del' alt='Submit Form' /> 

你可以檢查一下

echo "onclick='return confirm(\'Are you sure you want to submit this form?\');'" 

不能在單引號分隔屬性值用單引號。

的選項有:

使用雙引號的JS

echo "onclick='return confirm(\"Are you sure you want to submit this form?\");'" 

使用的HTML雙引號

echo "onclick=\"return confirm('Are you sure you want to submit this form?');\"" 

使用實體

echo "onclick='return confirm(&quot;Are you sure you want to submit this form?&quot;);\"" 

當你把JavaScript放在一個PHP字符串裏面的HTML屬性值中時,你有三種不同的語言混合在一起,並且你必須非常非常小心地轉義,這樣你才能逃避正確的字符在正確的時間使用正確的語言。作爲一個經驗法則,最好將PHP字符串的內容保持在最小值。只有在有變量時才能進入PHP模式。

?> 
    <form method='POST' action='delete.php'> 
     <input type='image' src='images/delete.png' class='del' alt='Submit Form' onclick="return confirm('Are you sure you want to submit this form?');" /> 
    </form> 
<?php 

出於同樣的原因,最好是讓你的JavaScript在外部文件和附加的事件處理程序與addEventListener代替onFOO屬性。

+0

我將php代碼從HTML標籤中分離出來並且工作正常。非常感謝您的詳細回覆。 –

0

這將工作

<form method='POST' action='delete.php' onsubmit="return confirm('Are you sure you want to submit this form?');"> 
<input type='image' src='images/delete.png' class='del' alt='Submit Form' /></form> 
+0

這就是OP說他們在做什麼。 – Quentin

+0

但它適用於我 – manu

+1

如果它適合你,但不適用於OP,那麼告訴他們做任何他們已經做的事情並不能解決他們的問題,是嗎? – Quentin

-1

如果您在您的網站上使用jQuery,最好的解決方案。

方法的jQuery

你的HTML:

<form class="sendingForm" method='POST' action='delete.php'> 
    <input type='image' src='images/delete.png' class='del' alt='Submit Form' /> 
</form> 

所以我給一個類:sendingForm

你的JavaScript部分:

$(".sendingForm").submit(function() { 
    if (confirm("Please confirm!")) return true; 
    else return false;  
}); 


你可以檢查一下:http://jsfiddle.net/d6gem0ty/

方法直列

最短的解決方案也許是更容易。這裏只有HTML和一個onclick事件。由OP http://jsfiddle.net/d6gem0ty/1/