2013-06-25 3 views
0

Я пытаюсь установить флажок в массив (checkBoxArray) и отправить его через ajax в файл запроса php с помощью плагина Select2 jQuery. Но значение фильтра Значение всегда пуст.Передайте массив как параметр Select2

//Here the checkBox array 
$('.chkfilters').on("change", function() { 
    var checkBoxArray = $('.chkfilters:checked').map(function(i,n) { 
     return $(n).val(); 
    }).get(); //get converts it to an array 
}); 

// Here the Select2 plugin 
$(".searchInput").select2({ 
    placeholder: "Rechercher un article, une référence...", 
    minimumInputLength: 3, 
    ajax: { 
     url: "/suggest", 
     dataType: 'JSONP', 
     type: 'GET', 
     data: function (term, page, checkBoxArray) { 
      return { 
       q: term, 
       page_limit: 10, 
       page: page, 
       filter : checkBoxArray 
      }; 
     }, 
     results: function (data, page) { 
      var more = (page * 10) < data.total; 
      return { 
       results: data.articles, 
       more: more 
      }; 
     } 
    }, 
    createSearchChoice: function(term, checkBoxArray) { 
     return { 
       text:term, 
       tform:'/recherche', 
       filter : checkBoxArray 
     }; 
    }, 

    ... 

}); 
+0

Вы только что поставили флажки с установленными флажками? –

+0

Не только. Я также пытаюсь отправить массив через функцию Select2. Флажки указаны за пределами формы. – MrSo

+0

Вы пробовали «сериализовать»? Посмотрите, что '$ ('. Chkfilters'). Serialize()' возвращает. http://api.jquery.com/serialize/ –

ответ

0

Код моего проекта. Он работает:

$('.lstProgramStoplistId').select2({ 
    ajax: { 
    url: programsUrl, 
    dataType: 'json', 
    contentType: 'application/json', 
    type: 'POST', 
    delay: 250, 
    data: function (params) { 
     var lstProgramCategoryId = $('.lstProgramCategoryId').select2('val'); 

     return JSON.stringify({ 
     str: params.term, 
     lstProgramCategoryId: lstProgramCategoryId 
     }); 
    }, 
    processResults: function (data, params) { 
     return { 
     results: data.items 
     }; 
    }, 
    cache: false 
    }, 
    minimumInputLength: 2 
});