Как передать множественные идентификаторы в функцию 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>