4

I want to show selected value from database into dropdown list on page load.

My controller index function is :

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

Column name in database for height is :Height

My dropdown in profile_update.blade.php is

<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>
1
  • 1
    Something along the lines of <option value="5 Feet" @if($profile_data['Height'] == '5 Feet') selected @endif >5 Feet </option> And repeat for the other options. Commented Jun 21, 2018 at 13:45

4 Answers 4

22

This is a example of how I do this:

<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>
Sign up to request clarification or add additional context in comments.

1 Comment

@foreach($country_data as $country) <option value="{{$country->country_id}}" {{$country_data->country == $country->country_id ? 'selected' : ''}}>{{$country->country_name}}</option> @endforeach , this is creating error
1

In order to understand it fully you will need basics of laravel (MVC), Let suppose, you have controller. In my case I made a separate table for drop down values.

My Approach --- Separate table for values of drop down, you can try different approach but my explanation was mainly focused on concept.

enter image description here


Note: PersonInfo is model, sampleType is model of my drop down values and don't forget to make a route for the controller.

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

   }
}

So, in the above controller I fetched all values and passed it to the ExampleView. Now in your View file you have to work likewise.

exampleView.blade.php add the below code


    <?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>

It is one of the best approach when you want to add dynamic values to the drop down. I mean if you want to add more values to the select tag options then this is the best approach.


Another Approach - take the idea

      <?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>

OUTPUT of ABOVE CODE


enter image description here

Comments

0

@Sarita Sharma show the error(s). Maybe then anyone help you to resolve this problem. Show data in colections in controler - use dd e.g.

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

Do you want to display the country in the view with the appropriate Height value from profile_data?

Ps. How to put the code, please use the formatting code - put the code in `` and use camelCase in value name (maintaining good PSR-1 practice) - it is easier to read code.

Comments

0

Well, simply if anyone still looking for this, here is the simple way to select items for dropdown from database to blade view

$users = Users::pluck('name', 'id');
$selectedID = 2;
return view('users.edit', compact('id', 'users'));

add this in the controller function before rendering the view and in the blade view, simply use this variable as foreach loop as

<select name="user_id" class="form-control" id="exampleFormControlSelect1">
    @foreach ($users as $key => $value)
    <option value="{{ $key }}" {{ ($key == $selectedID) ? 'selected' : '' }}> 
      {{ $value }} 
    </option>
    @endforeach
</select>

if you don't want to select all users from DB, you can use where condition before pluck condition as

$users = Users::where('status', 1)->pluck('name', 'id');

works with Laravel 8 and Laravel6

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.