Как передать множественные идентификаторы в функцию ajax

Я создал опцию множественного выбора, onchange, я хочу передать все идентификаторы множественного выбора в jquery ajax.

в настоящее время единственная опция выбора параметров работает нормально. как сделать то же самое с несколькими вариантами?

Вот мой выбор входных данных и сценарий

function update_subscategories_div(id) {
console.log(id);
  jQuery.ajax({
    url: "/get_subscategories",
    type: "GET",
    data: {
      "parent_id": id
    },
    dataType: "html",
    success: function(data) {
      jQuery("#versionsDiv").html(data);
    }
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="customer[category_ids][]" id="customer_category_ids_" onchange="update_subscategories_div(this)" multiple="multiple" class="form-control">
  <option value="">Select a parent category</option>
  <option value="1">option1</option>
  <option value="2">option2</option>
  <option value="3">option3</option>
  <option value="4">option4</option>
</select>

1 ответ

Решение

Ваш текущий код не имеет особого смысла... вы передаете id на сервер, но это HTML-элемент, а не выбранный идентификатор (потому что вы передали this к функции). Вот как вы можете получить все текущие выбранные идентификаторы. Это передаст выбор на сервер в виде массива.

NB. Я использовал ненавязчивый обработчик событий jQuery, который обычно считается более подходящим, чем встроенный код обработки событий (более заметный, более понятный, отдельный от кода и макета).

jQuery(function() {
  jQuery("#customer_category_ids_").change(function() {
    var ids = $(this).val();
    console.log(ids);
    jQuery.ajax({
      url: "/get_subscategories",
      type: "GET",
      data: {
        "ids": ids
      },
      dataType: "html",
      success: function(data) {
        jQuery("#versionsDiv").html(data);
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="customer[category_ids][]" id="customer_category_ids_" multiple="multiple" class="form-control">
  <option value="">Select a parent category</option>
  <option value="1">option1</option>
  <option value="2">option2</option>
  <option value="3">option3</option>
  <option value="4">option4</option>
</select>

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