JQuery пост массив через ajax - PullRequest
       8

JQuery пост массив через ajax

5 голосов
/ 22 апреля 2010

У меня есть массив (для флажков), который мне нужно передать вместе с обычной формой в сообщении ajax, но не могу заставить его работать:

new_data = [a,b,c,d,e];

somedata_assoc = JQuery.param({'choices[]': new_data});

    $.ajax({
        type: "POST",
     url: contract_qurl,
     data: $(div).find("form").serialize()+"&"+somedata_assoc,
     context: $(this),
     success: function(data) { $("#results_table").html(data); }
    });

Ответы [ 2 ]

7 голосов
/ 24 августа 2012

После повторного поиска единственное решение, которое работало для меня, было:

url='url/to/page'
choices = [1,2,3,4,5,6]
    $.post(url,{ 'choices[]': choices }, function(data){
          console.log(data);
    },'html');

Кроме того, используйте 'выборы' с квадратными скобками, чтобы вы могли получить данные на сервере в одной переменной, в противном случае это будет публикация для каждого элемента массива. Это сработало для меня. Вы можете увидеть другой пост здесь на stackoverflow .

Я надеюсь, что это поможет кому-то в будущем.

7 голосов
/ 22 апреля 2010

Я получаю сообщение об ошибке JavaScript в этой строке

new_data = [a,b,c,d,e];

Я должен был изменить это на

new_data = ['a','b','c','d','e']; 

Вы написали заглавную букву J в jQuery в этой строке

somedata_assoc = JQuery.param({'choices[]': new_data});

должно быть (или просто сокращенное обозначение $)

somedata_assoc = jQuery.param({'choices': new_data});

Кроме того, я не думаю, что вам нужны скобки, в большинстве случаев они затруднят получение данных на сервере

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