заполнить раскрывающийся список с базой данных, используя ajax в laravel - PullRequest
0 голосов
/ 31 октября 2018

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

Контроллер:

 public function cost(Request $request){
            $lab_data = \DB::table('lab_category')->select('category_name')->get();
              //return $lab_data;
        return view('medicinecost')->with('lab_category',$lab_data);
          }

Маршрут:

Route::get('labdetails','Test@cost');
Route::get('labprice',function (){
    return view('pages/medicinecost');
});

medicinecost.blade.php

<div class="form-group">
    <select name="labCat" id="lab" class="form-control input-lg dynamic" data-dependent="labSubCat">
    <option value="{{$lab_data}}">Select Lab Category</option>
        @foreach($lab_data as $lb)
            <option value="{{$lb->lab_category_id}}">{{$lb->category_name}}</option>
        @endforeach
    </select>
</div>

Я получаю эту ошибку

ErrorException in 1180188cd7aaaebdb54a13bbf08bc2d80ab30f15.php line 15:
Undefined variable: lab_data (View: C:\xampp72\htdocs\hospital\resources\views\pages\medicinecost.blade.php)

Ответы [ 5 ]

0 голосов
/ 31 октября 2018

Вы можете попробовать это.

Ваш контроллер

public function cost(Request $request){
            $lab_category = \DB::table('lab_category')->select('category_name','lab_category_id')->get();
        return view('medicinecost', compact('lab_category'));
          }

Ваш взгляд

<div class="form-group">
    <select name="labCat" id="lab" class="form-control input-lg dynamic" data-dependent="labSubCat">
    <option value="">Select Lab Category</option>
        @foreach($lab_category as $lb)
            <option value="{{$lb->lab_category_id}}">{{$lb->category_name}}</option>
        @endforeach
    </select>
</div>
0 голосов
/ 31 октября 2018

Ошибка здесь

<option value="{{$lab_data}}">Select Lab Category</option>

, а также здесь

@foreach($lab_data as $lb)

Вы определяете $lab_data в контроллере, но передаете с переменной lab_category в представлении

Итак, использовали @foreach($lab_category as $lb), как они упоминали ранее в ответе, и удалите {{ $lab_data }} в option-value

0 голосов
/ 31 октября 2018

В контроллере вам также нужно выбрать lab_category_id:

$lab_data = \DB::table('lab_category')->select('lab_category_id','category_name')->get();

Также исправьте способ передачи параметров, и нет необходимости передавать lab_category:

return view('medicinecost')->with('lab_data');

В поле зрения установите значение по умолчанию, например, 0 или пустое значение:

<option value="0">Select Lab Category</option>
0 голосов
/ 31 октября 2018

попробуйте этот код

контроллер

 return view('medicinecost',['lab_category'=>$lab_data]);

medicinecost.blade.php

<div class="form-group">
    <select name="labCat" id="lab" class="form-control input-lg dynamic" data-dependent="labSubCat">
    <option value="">Select Lab Category</option>
        @foreach($lab_category as $lb)
            <option value="{{$lb->lab_category_id}}">{{$lb->category_name}}</option>
        @endforeach
    </select>
</div>
0 голосов
/ 31 октября 2018

используйте это

<div class="form-group">
    <select name="labCat" id="lab" class="form-control input-lg dynamic" data-dependent="labSubCat">
    <option value="">Select Lab Category</option>
        @if(isset($lab_category))
        @foreach($lab_category as $lb)
            <option value="{{$lb->lab_category_id}}">{{$lb->category_name}}</option>
        @endforeach
        @endif
    </select>
</div>


Route::get('labprice',function (){
    $lab_data = \DB::table('lab_category')->select('category_name')->get();
          //return $lab_data;
    return view('pages/medicinecost')->with('lab_category',$lab_data);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...