PHP没有处理表单

时间:2015-04-29 16:00:10

标签: javascript php jquery

我在这里遇到一点问题 我有一个带有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?谢谢!

2 个答案:

答案 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();
});