如何使用Laravel在下拉列表中显示数据库中的选定值?

时间:2018-06-21 13:39:29

标签: laravel select dropdown laravel-5.5 selectedvalue

我想在页面加载时将数据库中的选定值显示到下拉列表中。

我的控制器索引函数是:

public function index()
{ 
 $country_data =DB::table('country')->select('country_id','country_name')->get();
$profile_data= DB::table('profiles')->select('*')->where('id',$user_id)->first();
return view('profile_update',compact('profile_data','country_data'));
}

数据库中高度的列名称为:Height

我在profile_update.blade.php中的下拉列表是

<select class="select4" name="country" id="country">
<option value="">Please Select</option>
 @foreach($country_data as $country)
<option value="{{$country->country_id}}" {{$country_data->country == $country->country_id  ? 'selected' : ''}}>{{$country->country_name}}</option>
 @endforeach</select>

3 个答案:

答案 0 :(得分:0)

这是我如何执行此操作的示例:

<select class="js-states browser-default select2" name="shopping_id" required id="shopping_id">
        <option value="option_select" disabled selected>Shoppings</option>
        @foreach($shoppings as $shopping)
            <option value="{{ $shopping->id }}" {{$company->shopping_id == $shopping->id  ? 'selected' : ''}}>{{ $shopping->fantasyname}}</option>
        @endforeach
    </select>

答案 1 :(得分:0)

@Sarita Sharma显示错误。也许那时有人可以帮助您解决此问题。在控制器中以集合形式显示数据-使用dd,例如

dd($country_data);
dd($profile_data);

您要在视图中使用profile_data中的适当“高度”值显示国家/地区吗?

Ps。如何放置代码,请使用格式代码-将代码放置在``中,并在值名称中使用camelCase(保持良好的PSR-1惯例)-更易于阅读代码。

答案 2 :(得分:0)

为了完全理解它,你需要掌握 Laravel (MVC) 的基础知识, 假设你有控制器。就我而言,我为下拉值制作了一个单独的表格。

我的方法---下拉值的单独表格,你可以尝试不同的方法,但我的解释主要集中在概念上。

enter image description here


注意:PersonInfo 是模型,sampleType 是我下拉值的模型,不要忘记为控制器制作路由。

ExampleController{

public funtion getValues($id){

/*
I am fetching information of a single row from the database by id and 
then passing it to the view. The $id to the function came from the 
request by your view/form. 
I also fetched the values of drop down from the separate table 
of database and passed it to the exampleView.
*/

$selectedValue=PersonInfo::findOrFail($id);
$sampleType=SampletypePicker::all(); //model for fetching all values of drop down

return view('exampleView',compact('selectedValue','sampleType));

   }
}

因此,在上面的控制器中,我获取了所有值并将其传递给 ExampleView。现在在您的视图文件中,您必须以同样的方式工作。

exampleView.blade.php 添加以下代码


    <?php $options=$selectedValue->sample_type ?> //note take the value from the database which stored for the individual record and match it with the selected one.
    <select class="form-control" name="test">
              <option>Select Test Type</option>
    @foreach ($sampleType as $value)
             <option value="{{ $value->sample_type }}" {{ ( $value->sample_type == $options) ? 'selected' : '' }}>
                {{ $value->sample_type }}
              </option>
     @endforeach
    </select>

当您想向下拉列表中添加动态值时,这是最好的方法之一。我的意思是,如果您想为 select 标签选项添加更多值,那么这是最好的方法。


另一种方法 - 采纳这个想法

      <?php $months = array("Jan", "Feb", "Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");   ?>

        <?php $options=$patient_data->month ?>

                @if($patient_data->month)
                <select id="expiry_month" name="month" class="form-control-sm">
@foreach($months as $month)
                     <option value="{{$month}}" {{($month==$options)? 'selected':'' }}>{{$month}}</option>
@endforeach
               </select>

            @endif

                <span class="select-icon"><i class="zmdi zmdi-chevron-down"></i></span>
            </div>

以上代码的输出


enter image description here