Laravel & Jquery - заполненное текстовое поле с полем выбора для другого значения поля - PullRequest
0 голосов
/ 10 января 2019

Как мне достичь этого результата?

enter image description here

Мне нужен динамический раскрывающийся список, например, когда я выбираю значение в раскрывающемся списке, текстовое поле должно заполняться подключенным значением aircraft_id в таблице ниже автоматически

вот мой пример значения базы данных

enter image description here

так, например, я выбираю 123 в выпадающем списке, тогда текстовое поле должно заполняться 3 автоматически, как я могу это сделать?

вот мой код, код работает, но он получает только то же значение, что я хочу получить другое значение из таблицы.

View

 <span>Aircraft Name</span>
                <select name="aircraft_name" class="aircraftsName">
                  <option value="0" disabled="true" selected="true"> Select </option>
                  @foreach ($aircrafts as $aircraft)
                      <option value="{{ $aircraft->aircraft_registration_number }}" >{{ $aircraft->aircraft_registration_number }}</option>
                  @endforeach

                </select>

                <span>Aircraft ID</span>
                <input id="aircraft_id" type="text" class="aircraft_id">
                <br>

Javascript и Jquery

    <script type="text/javascript">
  $(document).ready(function() {
    $(document).on('change', '.aircraftsName', function() {
        var air_id =  $(this).val();     // get id the value from the select
        $('.aircraft_id').val(air_id);   // set the textbox value

        // if you want the selected text instead of the value
       // var air_text = $('.aircraftsName option:selected').text(); 
    });
});
</script>

Мой текущий выход и проблема

enter image description here

1 Ответ

0 голосов
/ 10 января 2019

в вашем скрипте

$(document).on('change', '.aircraftsName', function() {
    var air_id =  $(this).val();
    $('.aircraft_id').val(air_id)
});

что ты делаешь над кодом? что такое значение $(this).val()

<option value="{{ $aircraft->aircraft_registration_number }}" >

вы присваиваете aircraft_registration_number , поэтому вам нужно изменить, как показано ниже

<option value="{{ $aircraft->aircraft_id }}" >

даже если у вас 1000 записей

Вы можете использовать свой массив просто

@foreach ($aircrafts as $aircraft)
  <option value="{{ $aircraft->aircraft_id }}" >{{ $aircraft->aircraft_registration_number }}</option>
@endforeach

или Вам нужно изменить $ aircraft массив, он должен быть таким

$aircrafts = [
           '1' => 'Sample',
           '4' => 'Boieng',
           '3' => '123'
        ];

затем поменяйте для каждого

@foreach ($aircrafts as $id => $aircraft)
      <option value="{{ $id }}" >{{ $aircraft }}</option>
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...