使用序列化函数发布提交按钮值以进行php验证

时间:2013-07-09 04:31:19

标签: jquery ajax

我需要使用serialize()函数发布按钮值。问题是serialize()不会发布按钮值。我的表单中有SAVE,UPDATE和DELETE按钮。然后PHP必须知道哪个按钮单击特定操作。我可以通过click函数获取按钮值,但是如何使用Ajax传递给PHP页面。我的代码在下面,也来自stackoverflow。

  $(document).ready(function()
    {
        $("#btnUpdate").click(function() {

          alert($(this).attr("value"));

            /* attach a submit handler to the form */
                $("#form1").submit(function(event) {

                /* stop form from submitting normally */
                event.preventDefault();

                /*clear result div*/
               $("#result").html('');

                /* get some values from elements on the page: */
               var values = $(this).serialize();

              /* Send the data using post and put the results in a div */
                $.ajax({
                  url: "form.php",
                  type: "post",
                  data: values,
                  success: function(data){
                      alert("success");
                              alert(data);
                       $("#result").html('submitted successfully');
                  },
                  error:function(){
                  alert("failure");
                  $("#result").html('there is error while submit');
                    }   
            }); 
        });
    });    
});

3 个答案:

答案 0 :(得分:2)

使用此按钮获取按钮值,将其放在有警报的位置:

var buttonvalue = $(this).val(); 

然后您可以通过执行以下操作将其附加到序列化数据:

var values = $('#form1').serialize();
values = values + '&button='+buttonvalue;

'& button ='是您在测试时会调用的,以查看使用了哪个按钮。

答案 1 :(得分:0)

documentation表示No submit button value is serialized since the form was not submitted using a button.

无论如何,您可以通过将按钮名称和值附加到serialize()的{​​{1}}输出来实现。

答案 2 :(得分:0)

我想你想试试这个

$(document).ready(function()
    {
       $("#btnUpdate").click(function() {


            /* attach a submit handler to the form */
                $("#form1").submit(function(event) {

                /* stop form from submitting normally */
                event.preventDefault();

                /*clear result div*/
               $("#result").html('');

                /* get some values from elements on the page: */
               var values = $(this).serialize();

              /* Send the data using post and put the results in a div */
                $.ajax({
                  url: "form.php",
                  type: "post",
                  data: values + '&' + 'button=' $(this).attr('value'),
                  success: function(data){
                      alert("success");
                              alert(data);
                       $("#result").html('submitted successfully');
                  },
                  error:function(){
                  alert("failure");
                  $("#result").html('there is error while submit');
                    }   
            }); 
        });
    });    
});