通过jQuery .post()函数传递数据

时间:2012-11-13 19:43:15

标签: jquery post

我通常通过.post()传递数据:

 $.post(
    "/ajax.php",
    $("#form").serialize(),
    function(responseJSON) {
        console.log(responseJSON);
    },
    "html"
);

在我的表单"#form"中,我通常有一个名为“id”的隐藏输入,其中包含我想要运行查询的项的id的值。

我想要做的是取出隐藏的输入并在我的提交按钮中添加data-id="$id"属性,并让jQuery函数从那里提取数据并将其与其他#form一起发送领域。

简单来说,我问的是如何将$('#form').serialize()$('#button').data('id')一起传递到我的后端,只需一个$.post()函数?

3 个答案:

答案 0 :(得分:1)

试试这个

var data = $("#form").serialize() + '&data-id=' + $('#button').data('id');
$.post(
    "/ajax.php",
    data,
    function(responseJSON) {
        console.log(responseJSON);
    },
    "html"
);

答案 1 :(得分:1)

.serialize()只是创建一个包含数据的字符串。您只需将&<variable>=<value>追加到最后。

答案 2 :(得分:0)

您可以尝试自动为您执行此操作的库,您无需担心内部工作,使用http://phery-php-ajax.net/

Phery::instance()->set(array(
   'function' => function($data){ 
       // $data['id'] = the hidden in your form
       return PheryResponse::factory()->json($your_array_that_will_be_turned_to_json);
   }
))->process();
<form data-remote="function" method="POST">
  <input type="hidden" name="id">
</form>

在您的Javascript中,您可以处理JSON

$(function(){
  $('form').bind('phery:json', function(event, json_data){
    // deal with your json_data
  }
});