Javascript PHP没有';不要处理表格
我这里有点小问题。Javascript PHP没有';不要处理表格,javascript,php,jquery,Javascript,Php,Jquery,我这里有点小问题。 我有一个带有jQuery的表单,它在提交表单时禁用提交输入。问题是:单击输入提交时,我使用PHP处理数据。但很明显,按钮首先被禁用,然后PHP无法执行处理。我需要找到一种方法来防止这种情况,请查看代码片段: <form class='send' action='{$_SERVER['PHP_SELF']}' method='post'> <!--Form data--> <input type='submit' name='fin
我有一个带有jQuery的表单,它在提交表单时禁用提交输入。
问题是:单击输入提交时,我使用PHP处理数据。但很明显,按钮首先被禁用,然后PHP无法执行处理。我需要找到一种方法来防止这种情况,请查看代码片段:
<form class='send' action='{$_SERVER['PHP_SELF']}' method='post'>
<!--Form data-->
<input type='submit' name='finish' value='Send'/>
</form>
然后是要处理的PHP代码:
if(isset($_POST['finish']))
{
//Do things
}
正如我所说,PHP不处理表单,因为JS禁用了按钮以防止多次提交。如何在禁用按钮之前处理PHP?谢谢 由于您禁用了submit按钮,因此它不会在
$\u POST
变量中发送到服务器,因此您的代码无法正常工作,正如您所说
另一种方法是创建一个隐藏的HTML输入
<input type="hidden" name="form">
您可以通过一个简单的按钮轻松地更改提交按钮来解决此问题:
<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();
});
$('input[name=“finish”]”,'.send')。在('click',function()上{
$(this.prop('disabled',true);
$('.send').submit();
});
我认为问题在于PHP脚本从未收到数据,因为您已禁用提交。我想你是想阻止刷新?您需要使用AJAX。单击后,禁用该按钮。成功后,再次让用户知道/启用按钮。禁用输入意味着它的名称/值对赢了;我不能被派去。在php中设置它的重要性是什么?如果它不违反您正在努力实现的任何规范,您可以隐藏按钮<代码>$(this).find('input[type=“submit”]').hide()代码>。我知道这是无耻的q&d(没人知道什么)。但是你怎么不用preventDefault()代码>?i、 e.:@PedroLobito我想禁用按钮,但是在PHP过程之后。我知道,但是我需要在PHP过程之后禁用。你能给我们提供更多信息吗?为什么需要禁用输入?您希望实现什么?好吧,我的代码的其余部分将是无关的,只会使问题变得更广泛。我基本上需要在禁用按钮之前处理PHP。我的意思是为什么在发送数据后需要禁用表单?发送表单时,会被重定向到表单操作中指定的页面,因此在发送表单后执行任何操作都是无关的。您可以随时使用AJAX发送表单,而无需重定向到其他页面谢谢您提供的代码和所有信息!隐藏输入效果很好!:)
if(isset($_POST['form']))
{
//Do things
}
<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();
});