Как получить значение массива в отдельном выпадающем списке - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу получить значение массива в отдельных выпадающих списках, используя JavaScript и PHP.Предположим, у меня есть массив типа

0: {"id": "none", "name": "none"}, 1: {"id": "none", "name": "none "}, 2: {" id ":" write "," name ":" write "}

Я хочу, чтобы индексный массив 0 отображался в первом поле со списком, массив 1 показывалсяво втором поле со списком и так далее, все поля со списком, имеющие одно и то же имя.Но когда я это сделал, он показывает все массивы в одном поле со списком. Вот мой код

var data = [{
  "id": "none",
  "name": "none"
}, {
  "id": "none",
  "name": "none"
}, {
  "id": "write",
  "name": "write"
}]

$.each(data, function(i, item) {

  $('#modules').append('<option value="' + data[i].id + '">' + data[i].name + '</option>');

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="modules"></select>

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Если вы хотите добиться этого с помощью простого JavaScript, посмотрите ниже фрагмент с желаемым выводом - выберите раскрывающийся список с текстом из объектов в массиве, заполнив параметры.

var data = [{
  "id": "none",
  "name": "none"
}, {
  "id": "none",
  "name": "none"
}, {
  "id": "write",
  "name": "write"
}]


function comboBox(data) {
    const select = document.getElementById('modules')
    data.map(object => {
    	let option = document.createElement("option");
        option.value = object.id;
        option.text = object.id;
        select.appendChild(option);  
    })
}

comboBox(data);
<select id="modules"></select>
0 голосов
/ 23 ноября 2018

Вы хотите 3 выпадающих списка?

var data = { 
  "one":   [{ "id": "none", "name": "none 1" }, { "id": "none", "name": "none 1" }, { "id": "write", "name": "write 1" }], 
  "two":   [{ "id": "none", "name": "none 2" }, { "id": "none", "name": "none 2" }, { "id": "write", "name": "write 2" }], 
  "three": [{ "id": "none", "name": "none 3" }, { "id": "none", "name": "none 3" }, { "id": "write", "name": "write 3" }]
}

$.each(data, function(i, item) {
  var $sel = $("<select/>", {
    "name": "data"
  });
  $.each(item, function(i, selItem) {
    $sel.append('<option value="' + selItem.id + '">' + selItem.name + '</option>')
  });
  $('#modules').append($sel);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="modules"></div>
0 голосов
/ 23 ноября 2018

Я думаю, что вы хотите показать данные в выпадающем списке, просто убедитесь, что ваш массив в правильном формате.

var data = [{"id":"none","name":"none"},                
                        {"id":"none","name":"none"},        
        {"id":"write","name":"write"}];

$.each(data,function(i,item){
   $('#modules').append('<option value="'+data[i].id+'">'+data[i].name+'</option>');  });




$('.modules').eq(i).append('<option value="' + data[i].id + '">' + data[i].name + '</option>'); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...