使用jQuery .load()传递序列化数据和变量

时间:2016-11-18 21:03:52

标签: jquery ajax

我有一个用serializeArray()序列化的表单。我可以使用.load()函数将数据传递给php,如下所示:

$('#searchResults').load('search.php', formData);

我还想要传递一个额外的值,而不是表单数据的一部分。我可以单独工作,如下:

$('#searchResults').load('search.php', {'dbVersion': myVersion});

然而,我无法让他们同时通过和工作。

我已经尝试使用$ .post()在回调中传递带有.load()的变量来发布表单数据......但是没有用。我已尝试过多种方法来分离数据:

$('#searchResults').load('search.php', {'dbVersion': myVersion, formData});

如何让函数同时传递单个变量和序列化数组?

我在另一篇文章中看到了这个,但尚未尝试过。我很快就会在这里试试:

var data = $('#myForm').serializeArray();
data.push({name: 'wordlist', value: wordlist});

$.post("page.php", data);

2 个答案:

答案 0 :(得分:0)

将附加字段添加到formData

formData.dbVersion = myVersion;
$('#searchResults').load('search.php', formData);

您也可以使用$.extend合并它们,而无需修改对象。

$('#searchResults').load('search.php', $.extend({dbVersion: myVersion}, formData);

答案 1 :(得分:0)

本周末我找到了答案。这是有效的:

$(document).on('click', '#search', function() {
var dropdownValue = $("#select").val();

var data = { dropdownValue : dropdownValue, version : myVersion}

$('#searchResults').load('search.php', data);

});