我有以下代码片段,我将序列化表单数据并通过ajax发布。我遇到过需要添加其他数据的情况。在这种情况下,我需要添加一个名为'selectedHours'的逗号分隔数组。这可能吗?
我正在创建'selectedHours',如下所示,它创建了一个列为“小时选择”类的列表项数组。在这方面没有使用表格值,输入等。
var selectedHours = [];
$('.hour-selected').each(function(k,v) {
selectedHours.push($(v).text());
});
$.ajax({
type: 'post',
url: '/process/somepage.php',
data: $form.serialize(),
dataType : 'json'
}).done(function (response) {
... and so on...
答案 0 :(得分:16)
试试这个:
$.ajax({
type: 'post',
url: '/process/somepage.php',
data: $form.serialize() + '&hours=' + JSON.stringify(selectedHours),
dataType : 'json'
}).done(function (response) {
... and so on...
发送的数据只是一个URL编码的字符串。您可以使用简单的连接附加其他值。
答案 1 :(得分:0)
也许最好的解决方案可能是使用by this answer所建议的jQuery的serializeArray
:
var data = $form.serializeArray();
data.push({name: 'hours', value: selectedHours});
$.post('/process/somepage.php', data).done(doSomething);
此解决方案可能更可取,因为它避免了手动构造序列化的数据字符串,而是选择将数据传递给jQuery处理。