Как использовать один и тот же JSON для заполнения двух combobox? - PullRequest
1 голос
/ 08 сентября 2010

У меня есть два поля со списком и один URL, который отправляет мне данные JSON для заполнения внутри поля со списком.Как я могу использовать тот же URL, чтобы заполнить поле со списком.

 `Can I use` $(".loctype").autocomplete({

source: function(request, response){

$.ajax..
}

});

Я не уверен, возможно ли это или нет.Я буду признателен, если кто-то укажет мне правильное направление.

мой HTML-код:

<p>
            <label for="ltype">Location Type</label>
            <select id="loctype">
            <option value="1">Warehouse</option>
            <option value="2">New Burg</option>

            </select>
        </p>
        <p>
            <label for="sku">Pallet Status</label>
            <select id="pstatus">
            <option value="3">3</option>
            <option value="4">4</option>

            </select>
        </p>

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Вам не нужен Jquery для заполнения поля со списком. Смотрите это .

После получения данных json вы можете выполнять итерацию по ним и заполнять свои списки. Допустим, ваши данные похожи на следующие:

data = {'loctype':["Warehouse", "New Burg"], 'pstatus':[3,4]};

Теперь давайте пройдемся по нему и заполним списки:

for(var i=0; i < data.loctype.length; i++) { // loctype and pstatus arrays have same length
    addOption(data.loctype[i], data.loctype[i], "loctype");
    addOption(data.pstatus[i], data.pstatus[i], "pstatus ");

}

Метод addOption выглядит следующим образом:

function addOption(text,value,cmbId) {
  var newOption = new Option(text, value);
  var lst = document.getElementById(cmbId);
  if (lst) lst.options[lst.options.length] = newOption;
}
1 голос
/ 08 сентября 2010

Не уверен, что я правильно понял ваш вопрос, но если вы вернете несколько полей:

return Json(new { Result = "success", location = whatever.location_id, status = whatever.pstatus });

Вы можете назначить:

if (data.Result == "success") {
      $('#loctype').val(data.location);
      $('#pstatus').val(data.status); 
}

РЕДАКТИРОВАТЬ Я предполагал, что вы отправляете обратно выбранное значение. Чтобы добавить опцию в выпадающий список, вам нужно будет вернуть текст и значение.

$('#loctype').append($('<option></option>').val(data.location_id).html(data.location_name));

Если вы также хотите, чтобы было выбрано это новое значение, добавьте .attr("selected", true)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...