Добавить значения в поле выбора из jquery

Я пытаюсь добавить значения из 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"}]

Но данные не добавляются в поле выбора. Любая помощь приветствуется.

вы добавили dataType: 'json' в свой вызов ajax?

Taha Paksu 28.03.2018 14:57

Я буду потому, что параметры $ .each являются ключевыми, а не данными. данные - это массив.

Steve 28.03.2018 14:57

попробуйте value.admin_id, а не data.admin_id

Houssein Zouari 28.03.2018 14:57
Поведение ключевого слова "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) для оценки ваших знаний,...
2
4
357
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

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);

Эта функция добавлена ​​для изменения выбора, я передаю идентификатор и извлекаю данные и добавляю их в другое поле выбора.Теперь, что происходит, когда я изменяю первое поле выбора, значения отображаются, если я изменяю его во второй раз, старые значения не стирать / очищать. как это очистить?

Shreyas Achar 29.03.2018 06:49

@ShreyasBandimat проверьте мой код раздела For your code need to be (As you said that you want to remove old options and then need to add new options) и попробуйте это. Спасибо.

Serving Quarantine period 29.03.2018 07:10

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