Я пытаюсь добавить значения из jquery в поле выбора.
Сторона HTML показана ниже
<select class = "form-control prod" name = "SalesPerson" id = "SalesPerson" required>
<!-- <option value = "">Select Sales Person</option> -->
</select>
Фрагмент кода Ajax показан ниже.
success: function(data){
console.info(data);
$.each(data, function(key, value) {
$('#SalesPerson').append("<option value='" + data.admin_id + "'>" + data.fname + "</option>");
});
}
});
Когда я делаю console.info(data);
Я получаю этот результат ниже
[{"admin_id":"206","fname":"FLYJAC-1BR","lname":""},{"admin_id":"252","fname":"KAMAL","lname":"G"},{"admin_id":"253","fname":"WILLIAM","lname":"S"}]
Но данные не добавляются в поле выбора. Любая помощь приветствуется.
Я буду потому, что параметры $ .each являются ключевыми, а не данными. данные - это массив.
попробуйте value.admin_id, а не data.admin_id
Возможный дубликат Как лучше всего добавить параметры для выбора из объекта JS с помощью jQuery?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


1.dataType: 'json'нужно добавить к вашему вызову ajax
2. data.admin_id должен быть value.admin_id и так далее для других.
Рабочий фрагмент: -
data = [{"admin_id":"206","fname":"FLYJAC-1BR","lname":""},{"admin_id":"252","fname":"KAMAL","lname":"G"},{"admin_id":"253","fname":"WILLIAM","lname":"S"}];
$.each(data, function(key, value) {
$('#SalesPerson').append("<option value='" + value.admin_id + "'>" + value.fname + "</option>");
});<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class = "form-control prod" name = "SalesPerson" id = "SalesPerson" required>
<!-- <option value = "">Select Sales Person</option> -->
</select>Для вашего кода должен быть (Как вы сказали, вы хотите удалить старые параметры, а затем добавить новые параметры): -
success: function(data){
var option_html = '';
$.each(data, function(key, value) {
option_html += "<option value='" + value.admin_id + "'>" + value.fname + "</option>";
});
$('#SalesPerson').html(option_html);
}
Примечание:-
если у вас нет dataType: 'json' в вашем вызове ajax, то перед кодом $.each() выполните: -
data = $.parseJSON(data);
Эта функция добавлена для изменения выбора, я передаю идентификатор и извлекаю данные и добавляю их в другое поле выбора.Теперь, что происходит, когда я изменяю первое поле выбора, значения отображаются, если я изменяю его во второй раз, старые значения не стирать / очищать. как это очистить?
@ShreyasBandimat проверьте мой код раздела For your code need to be (As you said that you want to remove old options and then need to add new options) и попробуйте это. Спасибо.
вы добавили
dataType: 'json'в свой вызов ajax?