2016-09-20 156 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/