3

我有一个带有 2 个按钮的表单,确认和删除。我发布了一个隐藏的输入元素 ID。单击确认后,将使用元素 ID 执行操作。如果单击删除,则会删除 DB 中具有元素 ID 的条目。现在,问题是当我执行 a 时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(); ?>
4

3 回答 3

3

您可以为单击的按钮隐藏输入

当您的两个按钮之一被点击时

获取单击按钮的值,例如删除

<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 serialize 不包括点击的按钮。对于有关序列化的更多信息,您可以参考http://api.jquery.com/serialize/

于 2012-10-04T14:17:42.007 回答
2

你可以使用这样的东西

url: "ajaxpage.php?button="+id,

$("#BUTTON1").click(function(){
var url="ajaxpage.php?button="+this.id,
"
})

在服务器端你可以得到那个变量

或者你可以使用 post 变量

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     
         });
于 2012-10-04T14:04:34.820 回答
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');
            })

     });
}
于 2012-10-04T14:05:48.590 回答