Что я могу сделать, чтобы распечатать все данные этой конкретной опции из таблицы в базе данных? - PullRequest
1 голос
/ 15 октября 2019

У меня есть выпадающий список, берущий его параметры из базы данных. Могу ли я узнать, что можно сделать, чтобы получить все детали этого конкретного варианта? ПРИМЕЧАНИЕ: я все время использовал Laravel

 <select class="form-control select-search" name="selectedUser" id="selectedUser" required style="width: 200px;">
   @foreach($users as $user)
    <option value="{{ $user->id }}" class="text-capitalize">{{ $user->name }}</option>
   @endforeach
 </select>

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Пожалуйста, выполните следующие шаги для запроса AJAX.

Маршрут

Route::any( '/user-data/{id}', 'UserController@getUser' );

В файле контроллера:

public function getUser( $id ){

    $user = User::findOrFail($id);

    return json_encode($user);
}

В поле зрения

<select class="form-control select-search" name="selectedUser" id="selectedUser" required style="width: 200px;">
     @foreach($users as $user)
    <option value="{{ $user->id }}" class="text-capitalize">{{ $user->name }}</option>
     @endforeach
 </select>
<div class="user-details">
     <div class="user-id"></div>
   <div class="user-location"></div>
</div>


$( '#selectedUser' ).change( function() {
   var userid = $(this).val();
   $.ajax({

    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
     },
     type:'GET',
     dataType: 'JSON',
     url: '/user-data/'+userid,        
     success: function(data) {
       console.log(data);
       $('.user-id').html(data.id);
       $('.user-location').html(data.id);
     }
 });
});
0 голосов
/ 15 октября 2019

Вы можете отправить ajax-запрос для получения информации из серверной части. Вот простой пример для вас.

(Предположим, у вас уже установлен jQuery.)

<select class="form-control select-search" id="mySelect" name="selectedUser" id="selectedUser" required style="width: 200px;">
    @foreach($users as $user)
    <option value="{{ $user->id }}" class="text-capitalize">{{ $user->name }}</option>
    @endforeach
</select>
<input type="text" id="userId" readonly>

Теперь часть AJAX.

<script type="text/javascript">
    $('#mySelect').change(function(){
        var user = $(this).val();
        var url = '{{ route("fetch.user") }}';
        if (user != '') {
            $.ajax({
                url: url,
                type: 'post',
                dataType: 'json',
                data: { "_token": "{{ csrf_token() }}", "user": user},
                success: function(response){                    
                    $('#userId').val(response.userID);                  
                }
            });
        }
    });
</script>

Добавьте маршрут вваш web.php файл

Route::post('fetch/user', 'UserController@getUser')->name('fetch.user');

А теперь в UserController добавьте getUser метод

public function getUser(Request $request){
    $user = User::findOrFail($request->user);
    return response()->json($user);
} 

Я использовал пост-запрос. Вы также можете использовать запрос get для этой операции.

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