jQuery Установить Выберите опции от JSON - PullRequest
0 голосов
/ 14 января 2020

Я строю простой поиск для своего приложения, и мне интересно, есть ли способ динамически устанавливать значения форм на основе JSON

Я отправляю запрос в API, который возвращает немного JSON вместе с результатами, указывающими, какими должны быть отфильтрованные раскрывающиеся списки. Так, например, если я ищу автомобили и марку, я выбираю «Форд», вот как будет выглядеть типичный ответ, чтобы указать, как должны выглядеть другие выпадающие поля:

{
  "make": [
    "Ford"
  ],
  "model": [
    "ECOSPORT",
    "Fiesta",
    "Focus",
    "Transit"
  ],
  "colour": [
    "Blue",
    "White",
    "Red",
    "Black"
  ],
  "fuel": [
    "Petrol",
    "Diesel"
  ],
  "transmission": [
    "Manual"
  ],
  "bodystyle": [
    "Suv",
    "Hatchback",
    "Bus"
  ],
  "engine": [
    998,
    1498,
    1242,
    1499,
    2198
  ],
  "door": [
    5,
    3
  ],
  "interior": [
    "Part leather",
    "Not set",
    "Cloth"
  ],
  "age": [
    "2016",
    "2017",
    "2011"
  ]
}

Также возвращается исходный запрос, который выглядит следующим образом (он может иметь несколько значений, если для исходного запроса было выбрано несколько параметров, например, марка и модель)

[
  {
    "name": "make",
    "value": "Ford"
  }
]

Что я ищу do это l oop через первый JSON, который содержит раскрывающиеся фильтры, и l oop через каждый элемент формы (по имени) и обновите значение (за исключением одного в исходном запросе, поэтому в этом случае make )

Входные имена элементов формы соответствуют именам, возвращаемым запросом:

                       <select name="make">
                            <option value="">Make (All)</option>
                        </select>
                    </div>
                    <div class="col span_2_of_12">
                        <select name="model"> 
                        </select>
                    </div>
                 <select name="transmission"></select>

В этом примере я хотел бы, чтобы код добавлял опции для выбора для 'model' и ' передача, пока не обновляются значения для make, как это было в исходном запросе

Я пытался сделать это как al oop, но, похоже, ничего не делает

      var dropdown = data.dropdown;
      $.each(dropdown, function (key, value) {
        var item = $("input[name=" + key + "]")
        item.empty()
        $.each(value, function (x, y) {
          item.append(new Option(y + ' (All)', ""));
          item.append("<option value=" + y + ">" + y + "</option>");
        });
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...