我通常通过.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()
函数?
答案 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
}
});