我有一个带有2个按钮的表格,确认&删除。我发布了一个隐藏的输入元素ID。单击“确认”时,将使用元素ID执行操作。如果单击“删除”,则会删除具有元素ID的DB中的条目。现在,问题是当我执行print_r($_POST); exit();
时,它正确地为我提供了输入元素ID。但它并没有告诉我哪个按钮被点击了。有没有办法找出在一个表单中确切点击了哪个按钮?两个按钮都需要以相同的形式存在。
这是我尝试过的代码:
的jQuery
var dataString = $('#form_confirm_delete').serialize();
$.ajax({
type: "POST",
url: "ajaxpage.php",
data: dataString,
dataType: 'json',
cache: false,
success: (function(response)
{
alert('Yes');
})
});
PHP页面(ajaxpage.php):
<?php print_r($_POST); exit(); ?>
答案 0 :(得分:3)
您可以为点击的按钮隐藏输入
单击两个按钮之一时
获取单击按钮的值,例如delete
<button id="deleteButton" value="delete">Delete</button>
并将点击按钮的值存储在
之类的变量中$("#deleteButton").click(function(){
var thebuttonclicked =$(this).attr("value");
然后设置隐藏字段的值
$('input[name=theclicked]').val(thebuttonclicked);
提交后,您可以获得名为theclicked的帖子。 我认为即使提交点击按钮http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2,此方法也更好,jquery序列化不包含点击的按钮。有关序列化的更多信息,请参阅http://api.jquery.com/serialize/
答案 1 :(得分:2)
你可以使用这样的东西
url: "ajaxpage.php?button="+id,
$("#BUTTON1").click(function(){
var url="ajaxpage.php?button="+this.id,
"
})
在服务器端你可以得到那个变量
或者您可以使用帖子变量
var id=this.id;
$.ajax({
type: "POST",
url: "ajaxpage.php",
data:{"dataString": dataString,"id":id},
dataType: 'json',
cache: false,
success: (function(response)
{
alert('Yes');
})
// you can use this variable id server-side
});
答案 2 :(得分:2)
你可以听两个按钮:
$( '#delete_button' ).click(function(){
submitForm( 'delete' );
});
$( '#submit_button' ).click(function(){
submitForm( 'submit' );
});
然后通过一个函数传递你的参数:
function submitForm( type ){
var dataString = $('#form_confirm_delete').serialize();
dataString += "&type=" + type;
$.ajax({
type: "POST",
url: "ajaxpage.php",
data: dataString,
dataType: 'json',
cache: false,
success: (function(response)
{
alert('Yes');
})
});
}