我有2个HTML格式的按钮。他们俩都应该提交表格。我需要捕获哪个按钮被点击,这样我就可以根据点击的按钮使用它来执行不同的操作。
我可以使用这两个按钮提交表单,但是我如何捕获在php文件中单击了哪个按钮。
<INPUT type="button" name="submit" class="button" class="element_2" value="firstbutton">
<INPUT type="button" name="submit1" class="button" class="element_2" value="second button.. ">
我在Jquery中使用post方法提交表单。如何检查在服务器端php脚本中单击了哪个HTML按钮
答案 0 :(得分:2)
你可以在这里使用隐藏元素,如下所示:
<input type="hidden" id="submittedBy" name="submittedBy">
使用.submit()
和.serialize()
的当前$.post()
处理程序应该可以正常工作,只需在点击任一按钮时更新隐藏字段,例如:
$("form :submit").click(function() {
$("#submittedBy").val(this.name);
});
然后在PHP中,只需检查$_POST["submittedBy"] == "submit"
或"submit1"
,看看是哪个原因造成的。
另一种方法是让click
处理程序POST并添加.serializeArray()
之间的值以及调用$.param()
时的值,如下所示:
$("form :submit").click(function() {
var data = $(this.form).serializeArray();
data.push({ name: 'submittedBy', value: this.name });
$.post("myPage.php", data, function(result) {
//do something
});
return false; //prevent normal form submission, even with the .submit() handler
});
答案 1 :(得分:2)
就这样做,
<强> HTML 强>
<button type="submit" name="action[update]" value="1">Update</button>
<button type="submit" name="action[delete]" value="1">Delete</button>
<强> PHP 强>
$action = isset($_POST['action']['update']) ? 'update' : 'delete';
如果用户禁用了JavaScript,您的表单就会被破坏,您不能依赖JavaScript来告诉您按钮被点击了。
答案 2 :(得分:1)
您可以尝试使用isset函数
if(isset($_POST['submit'])){
echo "first button was clicked";
}
或者检测到第二个被点击:
if(isset($_POST['submit1'])){
echo "second button.. was clicked";
}
答案 3 :(得分:1)
我会使用以下方式捕获页面上的所有事件:
$(document).click(function (obj) {
if ('equipmentSetup' === obj.target.id) {
$('#form').submit();
}
...
然后添加一个if语句,查找所需按钮的“id”。不要使用名称或ID“提交”。我忘了为什么,但我记得它给我带来了麻烦。
答案 4 :(得分:1)
您可以尝试更改按钮以键入=“按钮”并为其指定ID。有了它,你可以使用jquery行(不能检查下面的语法,但我认为我做对了)
$('form button').click(function(){
if($(this).attr('id') = "button1"){ ...button 1 clicked}
..process form here..
});
那会这么做吗?