【问题标题】:populate drop-down list with database using ajax in laravel在 laravel 中使用 ajax 用数据库填充下拉列表
【发布时间】:2019-04-04 05:53:09
【问题描述】:

我正在尝试从下拉列表中的数据库中获取数据但它没有显示,我也观看了几个教程但事情没有按预期工作

控制器:

 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)

【问题讨论】:

  • 显示你的medicinecost文件
  • 您能否提供您尝试填充下拉列表的视图代码
  • foreach loop中使用lab_category而不是lab_data
  • 我已经尝试过@BhargavChudasama 但给了我同样的错误。
  • 如果问题(此处)得到解决,您肯定会收到错误/错误,因为您只选择了category_name,并且您也尝试使用lab_category_id。更改您的选择条件

标签: html ajax database laravel phpmyadmin


【解决方案1】:

使用这个

<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);
});

【讨论】:

  • 我已经使用了你的代码@Shaielndra Gupta,未定义的变量已解决,但列表没有出现
  • @Prathamesh 正如我之前所说,您必须澄清您在哪条路线上遇到错误
  • 在 Route labprice 我收到一个错误,你的代码解决了 80% 的问题,我快到了
  • 在那条路线上,您直接返回视图,以便如何访问该变量
  • 我使用了这条路线,但它给出了一个错误 View [medicinecost] not found.
【解决方案2】:

在 Controller 中,您还需要选择 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>

【讨论】:

    【解决方案3】:

    试试这个代码

    控制器

     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>
    

    【讨论】:

      【解决方案4】:

      错误在这里

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

      还有这里

      @foreach($lab_data as $lb)
      

      您在控制器中定义了$lab_data,但在视图中传递了lab_category 的变量

      因此,正如他们之前在答案中提到的那样使用@foreach($lab_category as $lb),并在option-value 中删除{{ $lab_data }}

      【讨论】:

      • 是的,尝试了同样的方法,但下拉列表中仍然没有填充数据
      • 是的,我用过 dd();对于该变量,它采用 JSON 格式
      • json 格式?你能快速改变你的return view 像这样return::view('medicinecost', ['lab_category' =&gt; $lab_data ]); 但不确定它是否能解决你的问题
      【解决方案5】:

      你可以试试这个。

      你的控制者

      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>
      

      【讨论】:

        猜你喜欢
        • 2018-10-03
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 2014-08-27
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多