我在一张表格上有两个提交按钮。我正在使用序列化方法(因此它不会刷新页面)将表单数据发送到php页面。如果两个按钮将数据发送到一个php页面,我如何根据按下的按钮判断要处理哪个php脚本部分?我在这个网站上看到的类似问题对我没有帮助。我的代码如下所示。
HTML
<form id='form_id' action='my_page.php' method='post'>
<input type='text' name='quest1' value='$question'>
<input type='text' name='test1_id' value='$test_idq'>
<input type='text' name='test_code1' value='$code'>
<input type='text' name='class_name1' value='$class_name' >
<input type='text' name='test_name1' value='$test_nameq'>
<button id='response' class='btn btn-danger'>Response</button>
<button id='subm' class='btn btn-success''><b>Save</b></button>
</form>
的Javascript
//This script processes the button with the id=subm
$('body').on('click', '#subm', function(){
$.post($("#form_id").attr("action"), $("#form_id").serialize(), function(info){ $("#msg").html(info); } );
$("html, body").animate({ scrollTop: 0 }, "slow");
});
$('body').on('submit', '#form_id', function(event){
return false;
$('#subm').click(function(){
})
});
//This script processes the button with the id=response
$('body').on('click', '#response', function(){
$.post($("#form_id").attr("action"), $("#form_id").serialize(), function(info){ $("#msg").html(info); } );
$("html, body").animate({ scrollTop: 0 }, "slow");
});
$('body').on('submit', '#form_id', function(event){
return false;
$('#response').click(function(){
})
});
PHP
<?php
include("includes/db.php");
$questn1 = $_POST['quest1'];
$class1 = $_POST['class_name1'];
$test_id1 = $_POST['test1_id'];
$t_code1 = $_POST['test_code1'];
$t_name1 = $_POST['test_name1'];
//php code continues
}
?>
答案 0 :(得分:1)
您可以为每个输入指定不同的值:
<input type="submit" name="action" value="Update" />
<input type="submit" name="action" value="Delete" />
你可以在这个问题中找到完整的答案: Two submit buttons in one form
答案 1 :(得分:0)
您可以添加<input type='hidden' name='action' value='-'>
然后在按钮单击功能中,在序列化表单值之前设置此隐藏输入的值。
答案 2 :(得分:0)
根据按下的提交按钮设置隐藏输入的值,然后根据该输入处理表单。
HTML
<input type='hidden' id="action" name='action' value=''>
<button type="submit" id='response' value="response" class='btn btn-danger'>Response</button>
<button type="submit" id='subm' value="subm" class='btn btn-success''><b>Save</b></button>
的Javascript
$('body').on('click', '[type="submit"]', function(){
$('#action').val($(this).val());
});
PHP
<?php
include("includes/db.php");
if($_POST['action'] == 'response' ){
// do something
}
else if($_POST['action'] == 'subm' ){
// do something else
}
答案 3 :(得分:0)
你可以用不同的方式来制作两个php页面脚本 示例 save.php 强>
<?php
include("includes/db.php");
$questn1 = $_POST['quest1'];
$class1 = $_POST['class_name1'];
$test_id1 = $_POST['test1_id'];
$t_code1 = $_POST['test_code1'];
$t_name1 = $_POST['test_name1'];
//php code continues
}
?>
<强> response.php 强>
<?php
include("includes/db.php");
$questn1 = $_POST['quest1'];
$class1 = $_POST['class_name1'];
$test_id1 = $_POST['test1_id'];
$t_code1 = $_POST['test_code1'];
$t_name1 = $_POST['test_name1'];
//php code continues
echo $response;
}
?>
<强>的Javascript 强>
//This script processes the button with the id=subm
$('body').on('click', '#subm', function(){
$.post('save.php', $("#form_id").serialize(), function(info){ $("#msg").html(info); } );
$("html, body").animate({ scrollTop: 0 }, "slow");
});
$('body').on('submit', '#form_id', function(event){
return false;
$('#subm').click(function(){
})
});
//This script processes the button with the id=response
$('body').on('click', '#response', function(){
$.post('response.php', $("#form_id").serialize(), function(info){ $("#msg").html(info); } );
$("html, body").animate({ scrollTop: 0 }, "slow");
});
$('body').on('submit', '#form_id', function(event){
return false;
$('#response').click(function(){
})
});