0

我通常像这样通过 .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()

4

3 回答 3

1

试试这个

var data = $("#form").serialize() + '&data-id=' + $('#button').data('id');
$.post(
    "/ajax.php",
    data,
    function(responseJSON) {
        console.log(responseJSON);
    },
    "html"
);
于 2012-11-13T19:45:42.977 回答
1

.serialize() 只是用数据创建一个字符串。你只需要追加&<variable>=<value>到最后。

于 2012-11-13T19:48:24.137 回答
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
  }
});
于 2012-11-13T19:49:31.477 回答