Добавление объектов в запрос form.serialize ajax (имитация отправки флажка) - PullRequest
0 голосов
/ 31 октября 2011

Я использую jquery ajax для отправки содержимого формы на сервер следующим образом:

$.ajax({
        type: type,
        dataType: "json",
        url: url,
        data: form.serialize(),
        success: onSuccess
});

Я должен отправить массив данных, как если бы он пришел из флажка.

Я не хочу создавать скрытый флажок на лету и добавлять его в форму перед отправкой.Я не вижу никаких других методов в форме jquery api, которые могли бы мне помочь.Любая помощь?

Спасибо, Крис.

1 Ответ

0 голосов
/ 29 сентября 2012

Я понимаю, что это сообщение старое и может не совпадать с моим случаем - но оно возникло при поиске, когда у меня возникла очень похожая проблема, так что вот она. В моем случае был определенный формат данных, который ожидал сервер: $_POST['Category'] = Array([id]=>value), поэтому я использовал вложенный объект для форматирования данных и jQuery для отправки через Ajax POST. В этом примере мы выбираем некоторые идентификаторы категорий из элементов DOM, которые затем используются в качестве ключей при сохранении данных, а значения выводятся с помощью функции:

var items = {};
var fn = 'Category';
var val = {};
items[fn] = val;
var item;
$("#div.data").each(function(){
    item = $(this).val();
    items.Category[item] = myval();
});
function myval() {
    // get data for the value part
    return data;
}
$.ajax({
    type: 'POST',
    cache: false,
    url: window.location.href,
    data: items,
    success: function(data){/* callback */}
});
...