我在这里遇到一点问题
我有一个带有jQuery的表单,当表单被提交时禁用提交输入。
问题是:当单击输入提交时,我使用PHP处理数据。但显然该按钮首先被禁用,然后PHP无法执行处理。我需要找到一种方法来防止这种情况,看看代码片段:
<form class='send' action='{$_SERVER['PHP_SELF']}' method='post'>
<!--Form data-->
<input type='submit' name='finish' value='Send'/>
</form>
禁用jQuery函数:
$('.send').on('submit', function()
{
$(this).find('input[type="submit"]').prop("disabled", true);
});
然后处理PHP代码:
if(isset($_POST['finish']))
{
//Do things
}
正如我所说,PHP不会处理表单,因为JS禁用了按钮以防止多个子目录。如何在禁用按钮之前处理PHP?谢谢!
答案 0 :(得分:2)
由于您正在禁用提交按钮,因此您无法将$_POST
变量发送到服务器,因此您的代码无效,正如您所说。
另一种方法是创建隐藏的HTML输入
<input type="hidden" name="form">
然后,当您检查表单是否已发送时,您将使用
if(isset($_POST['form']))
{
//Do things
}
答案 1 :(得分:1)
您可以通过一个简单的按钮轻松更改提交按钮:
<form class='send' action='{$_SERVER['PHP_SELF']}' method='post'>
<!--Form data-->
<input type='button' name='finish' value='Send'/>
</form>
$('input[name="finish"]', '.send').on('click', function(){
$(this).prop('disabled', true);
$('.send').submit();
});