Хранение идентификатора, а не имени в БД при использовании зависимого раскрывающегося списка - Laravel / JS - PullRequest
1 голос
/ 04 мая 2020

Я работаю с зависимым выпадающим списком. Я пытаюсь получить имя значения из списка для хранения в моей БД, но получаю только индекс (число). Как это решить? Вы можете мне помочь?

У меня есть эти коды:

HTML

<div class="form-group col-md-4">
 <label for="state">State:</label>
  <select name="state"class="form-control state" id="state" onchange="ChangecatList()" required >
   <option selected>Select State...</option>
    @foreach($state as $k => $v)
   <option value="{{$k}}" name="$key">{{ $k }}</option>
    @endforeach
  </select>
</div>
<div class="form-group col-md-4">
 <label for="city">City/ City:</label>
  <select class="form-control city" id="city" placeholder="City"  name="city"></select>
</div>

JS

var catAndActs = {};

catAndActs['AC'] = ['City1','City2'];

function ChangecatList() {
    var catList = document.getElementById("state");
    var actList = document.getElementById("city");
    var selCat = catList.options[catList.selectedIndex].value;
    while (actList.options.length) {
        actList.remove(0);
    }
    var cats = catAndActs[selCat];
    if (cats) {
        var i;
        for (i = 0; i < cats.length; i++) {
            var cat = new Option(cats[i], i);
            actList.options.add(cat);
        }
    }
} 

Я использую Laravel 6 - Когда я отлаживаю -> dd ($ request), это показывает, что я получаю индекс.

LARAVEL

+request: Symfony\Component\HttpFoundation\ParameterBag {#52 ▼
    #parameters: array:14 [▼
      "_token" => "kYkq2DhQ7v5XPjY8Aql7gPu5uWnoDYIxRDQXGza2"
      "state" => "AC"
      "city" => "7" // <- here

1 Ответ

0 голосов
/ 04 мая 2020

Просто поместите значение в качестве второго параметра, чтобы получить город в качестве значения, как показано ниже

var cat = new Option(cats[i], cats[i]);

Вы можете найти конструктор, задокументированный здесь https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionElement/Option

...