2015-06-09 4 views
0

Я пытаюсь использовать select2 pulling data с помощью ajax из back-end php. Я не мог понять документацию столько, сколько хотел. Думаю, я, наверное, пропустил некоторые взятые за предоставленные вещи. Пожалуйста, вы можете помочь с простым примером. Я начал или как это ...Select2 с Ajax + PHP

HTML

<select id="select_proj" style="width:10em"> 
    <option value="" selected="selected">Search</option> 
</select> 

JS

$('select').select2(); 
     $("#select_proj").select2({ 
      ajax: { 
       url: '../app/select_prj.php', 
      dataType: 'json', 
      delay: 250, 
      data: function (term, page) { 
       return { 
        select_proj: term, // search term 
        page: 10 
       }; 
      }, 
      processResults: function (data, page) { 
       return { 
       results: data.items 
       }; 
      }, 
      cache: true 
      }, 
      escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
      minimumInputLength: 1, 
     }); 

В PHP

$data_wildcardsearch = $_POST['term']; 

бросает Ошибка

[Примечание: Undefined индекс: член Ь> -----/приложение/select_prj.php на линии
]

Не могли бы вы помочь? Можете ли вы, пожалуйста, поделиться примером кода?

+1

, потому что вы передаете '' term'' как '' select_proj''. –

+0

его '$ _POST ['select_proj']; 'not' $ _POST ['term']; ' – Saty

ответ

3

В данных() функции вы должны пройти 'термин' в качестве ключа вместо select_proj.

$('select').select2(); 
     $("#select_proj").select2({ 
      ajax: { 
       url: '../app/select_prj.php', 
      dataType: 'json', 
      delay: 250, 
      data: function (term, page) { 
       return { 
        term: term, // search term 
        page: 10 
       }; 
      }, 
      processResults: function (data, page) { 
       return { 
       results: data.items 
       }; 
      }, 
      cache: true 
      }, 
      escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
      minimumInputLength: 1, 
     }); 

Тогда вы можете получить его с помощью:

$data_wildcardsearch = $_POST['term']; 
+0

Это сработало. Запрос выполнен и возвращен [{"PROJ_ID": 10039, "0": 10039}, {"PROJ_ID": 10038, "0": 10038}], как ожидалось. Как я могу получить эту визуализацию в select? – user4826347

+0

Опубликовать другой вопрос, это не по теме. – Tool

1

У вас есть почта термин с ключом =>'select_proj'. Изменить код, как показано ниже,

$data_wildcardsearch = $_POST['select_proj']; 

ИЛИ

data: {term: term, page: 10}, 
Смежные вопросы