Php 使用带有多个提交按钮的AJAX
我有一个html表单,其中包括2个提交按钮 这两个submit按钮连接到一个php文件,该文件根据submits命令运行语句。php文件运行正常,尽管当我使用AJAX发送数据和防止重定向时,信息没有到达php文件,尽管在测试时php语句工作正常 有趣的是,当我使用一个只有一次提交而没有Php 使用带有多个提交按钮的AJAX,php,jquery,ajax,form-submit,Php,Jquery,Ajax,Form Submit,我有一个html表单,其中包括2个提交按钮 这两个submit按钮连接到一个php文件,该文件根据submits命令运行语句。php文件运行正常,尽管当我使用AJAX发送数据和防止重定向时,信息没有到达php文件,尽管在测试时php语句工作正常 有趣的是,当我使用一个只有一次提交而没有if/else的PHP时,信息到达PHP进行处理,而没有重定向,因此问题可能在于两次提交,因为我的AJAX无法处理或区分提交 我附上我的密码 HTML <input type="submit" name="f
if/else
的PHP时,信息到达PHP进行处理,而没有重定向,因此问题可能在于两次提交,因为我的AJAX无法处理或区分提交
我附上我的密码
HTML
<input type="submit" name="first_submit" value="Frist" />
<input type="submit" name="second_submit" value="Second" />
尝试使用此代码阻止默认操作 Jquery
event.preventDefault()
因此,事件的默认操作不会被触发您可以创建并使用一些会话变量来轻松实现它 例如$_会话['validate'] 按钮的HTML和PHP代码
<button type="submit" id="first_submit" style="<?php echo isset($_SESSION['validate'])?'display:none':'';?>">first submit</button>
<button type="submit" id="second_submit" style="<?php echo isset($_SESSION['validate'])?'':'display:none';?>">second submit</button>
```$('#表单')。在('click',functi..应该在“submit”事件上,而不是在click事件上。此外,您需要将
数据:$(this.serialize()``更改为数据:$('#表单')。serialize()
使用..并再次单击按钮您使用该程序的方式是错误的。为什么需要两个提交按钮?对不起,我使用了“提交”,只是测试后的“单击”仍保留在这里。我更正了我的代码。@Sloarthrasher$(此)。serialize()
应该工作得很好,因为上下文将是表单元素。不幸的是,我得到了相同的结果,提交没有到达PHP
进行处理。如果我使用一个提交,代码工作得很好。
if (isset($_POST['first_submit'])) {
//do something
}
elseif (isset($_POST['second_submit'])) {
//do something
}
else {
//do something
}
?>
<button type="submit" id="first_submit" style="<?php echo isset($_SESSION['validate'])?'display:none':'';?>">first submit</button>
<button type="submit" id="second_submit" style="<?php echo isset($_SESSION['validate'])?'':'display:none';?>">second submit</button>
<script>
$(document).ready(function(){
$("#form").on('submit', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'handler-file.php',
data: new FormData(this),
dataType: "json",
enctype: 'multipart/form-data',
contentType: false,
cache: false,
processData:false,
error:function(error){
//your required code or alert
alert(error.responseText);
},
success: function(response){
if(response.status=='1')
{
//your required code or alert
$('#first_submit').hide();
$('#second_submit').show();
}
else if(response.status=='2')
{
//your required code or alert
$('#first_submit').show();
$('#second_submit').hide();
}
else
{
//your required code or alert
}
}
});
});
});
</script>
<?php
session_start();
$result['status']='0';
$result['error']='';
if(!isset($_SESSION['validate']))
{
if(!isset($_FILES['file']))
{
$result['error'].='[Er-02 file missing!]';
}
else
{
//your other code
$_SESSION['validate'] = true;
$result['status']='1';
}
}
else if($_SESSION['validate']==true)
{
if(!isset($_FILES['file']))
{
$result['error'].='[Er-03 Validation file missing!]';
}
else
{
//your other code
unset($_SESSION['validate']);
$result['status']='2';
}
}
else
{
$result['error'].='[Er-01 Invalid source!]';
}
echo json_encode($result);