JQuery сделать массив - как / что лучше - PullRequest
0 голосов
/ 28 мая 2010

У меня есть 4 serailized массива, которые я хочу передать php для обработки. Как лучше всего объединить их в один массив>

пример:

serial_1 = $('#col1').sortable('serialize');
serial_2 = $('#col2').sortable('serialize');
serial_3 = $('#col3').sortable('serialize');
serial_4 = $('#col4').sortable('serialize');`

каждый сериализованный массив относится к столбцу / разделу страницы (col1, col2 и т. Д.) Что мне нужно сделать / я хотел бы сделать, это создать один массив, который помещает сериализованный массив в другой массив для одного сообщения.

пример:

var new_array = serilaize(col_1(serial_1),col2(serial_2),col3,(serial_3),col4(serial_4))

Я ЗНАЮ, ЧТО НЕ ПРАВИЛЬНО, поскольку в JQuery понятия не имею, как исправить правильный синтаксис.

Этот новый массив должен быть опубликован через ajax следующим образом:

        $.ajax({
    url: "test.php",
    type: "post",
    data: new_array,
    error: function(){
    alert('SOME ERROR MESSAGE');
    }
    });

Заранее спасибо

1 Ответ

3 голосов
/ 28 мая 2010

Вы можете просто создать наложенный объект / массив и jsonize его, как

var senderobj = [];
$('*[id^=col]').each(function(){
  senderobj.push($(this).sortable('serialize');
}

if(window.JSON) senderobj = window.JSON.stringify(senderobj);

$.ajax({
//...
data: {
   formdata: senderobj
}
});

замените универсальный селектор (*) на нужный вам тип элемента

Чтобы создать массив, вы всегда можете вызвать $. MakeArray () , который создает истинный массив javascript из «объекта, похожего на массив». Фактически, вызов .serialize () не намного больше, чем вызов .serializeArray () внутри, что, в свою очередь, вызывает .makeArray ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...