Формат Select2 optgroup с использованием PHP

У меня есть вызов ajax, который получает динамические данные и помещает их в select2 следующим образом:

$.ajax({
    type: 'get',
    url: '/api/?stuff='+c,
    dataType: "json",
    success: function (response) {
        // If select2 is already defined, we destroy it and rebuild it with the new data
        if (typeof $(".select2edit").data('select2') !== 'undefined') {
            $(".select2edit").select2('destroy').select2({ data: response, width: '100%', closeOnSelect: false });
        } else {
            $(".select2edit").select2({ data: response, width: '100%', closeOnSelect: false });
        }
    }
});

Я создаю ответ с помощью PHP, а затем преобразую его в JSON перед отправкой:

$old_emplacement = '';
$results = array();
$i = -1;

while($array_campaign = tep_db_fetch_array($campaign)){
    if ($array_campaign['name'] != $old_emplacement) {
        $i++;
        $results['results'][$i]['text'] = $array_campaign['name'];
        $old_emplacement = $array_campaign['name'];
        $c = 0;
    }
    $results['results'][$i]['children'][$c]['id'] = $array_campaign['id'];
    $results['results'][$i]['children'][$c]['text'] = $array_campaign['c_name'];
    $c++;
}

$results['pagination']["more"] = true; 

Таким образом получается следующий формат JSON:

{
  "results": [
    { 
      "text": "Name 1", 
      "children" : [
        {
            "id": 1,
            "text": "Text 1.1"
        },
        {
            "id": 2,
            "text": "Text 1.2"
        }
      ]
    },
    { 
      "text": "Name 2", 
      "children" : [
        {
            "id": 1,
            "text": "Text 2.1"
        },
        {
            "id": 2,
            "text": "Text 2.2"
        }
      ]
    }
  ],
  "paginate": {
    "more": true
  }
}

Я получаю No results found., когда select2 инициализируется и загружается. И я не знаю почему. Это правильный формат, насколько говорит документация, а другие вопросы, похоже, подтверждает. Есть идеи, откуда могла взяться проблема?

Также хорошо отметить, что мой select2 находится внутри формы, которая находится внутри модального окна, и это html:

<select name = "xx[]" id = "edit-xx" name='xx' class = "form-control select2edit" multiple>
</select> 
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
703
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключалась в формате, созданном моим PHP-кодом. Я публикую здесь результат для всех, кто пытается сгенерировать формат select2 optgroup с помощью PHP и для моей справки:

$old_emplacement = '';

$results = array();
$i = -1;

while($array_campaign = tep_db_fetch_array($campaign)){
    if ($array_campaign['name'] != $old_emplacement) {
        $i++;
        $results[$i]['text'] = $array_campaign['name'];
        $old_emplacement = $array_campaign['name'];
        $c = 0;
    }
    $results[$i]['children'][$c]['id'] = $array_campaign['id'];
    $results[$i]['children'][$c]['text'] = $array_campaign['c_name'];
    if (in_array($array_campaign['id'], $campaigns_array)) {
        $results[$i]['children'][$c]['selected'] = true;
    }
    $c++;
}

Другие вопросы по теме