【问题标题】:Laravel : Form select option value is always NULL when submittingLaravel:提交时表单选择选项值始终为NULL
【发布时间】:2014-10-01 09:07:10
【问题描述】:

我有一个表格,我将乐队表的 de id 放在一个选择选项中。当我在下拉列表中选择一个 id 并尝试提交表单时,该值始终保持为 NULL。如何检索我选择的值?

创建.blade.php 文件:

<form>
    <select name="band_id">
        @foreach ($bands as $band) 
            <option value="{{ $band->band_id }}">{{ $band->band_id }}</option>
        @endforeach
    </select>
    <input type="submit" value="Submit">
</form>

我的 Bandcontroller 在我的商店操作中:

$bands->band_id = $input['band_id'];

【问题讨论】:

  • 我认为您使用 Input 的方式有误,请查看 this 或仅使用 $request 变量。

标签: php forms select laravel option


【解决方案1】:

Laravel 6 或更高版本

//blade
{!!Form::open(['action'=>'CategoryController@storecat', 'method'=>'POST']) !!}
        <div class="form-group">
            <select name="cat" id="cat" class="form-control input-lg">
                <option value="">Select App</option>
                @foreach ($cats as $cat)
                <option value={{$cat->id}}>{{ $cat->title }}</option>
                @endforeach
            </select>
        </div>

        <div class="from-group">
            {{Form::label('name','Category name:')}}
            {{Form::text('name','',['class'=>'form-control', 'placeholder'=>'Category name'])}}
        </div>
    <br>
    {!!Form::submit('Submit', ['class'=>'btn btn-primary'])!!}
    {!!Form::close()!!}

// controller 
  public function storecat(Request $request){
        Log::channel('stack')->info('name'.$request->app);
        if($request->input('cat')==null){ // retriving option value by the name attribute of select tag
            return redirect(route('cats.cat'))->with('error', 'Select an app');
        }
        $this->validate($request,[
            'name'=>'required',
        ]);

    }

【讨论】:

    【解决方案2】:

    首先,您使用的是@foreach ($band as $band),请确保它不是拼写错误,如果不是,请修复它(可能是$bands as $band,并假设您知道我的意思)。不管怎样,你也可以试试这个:

    {{ Form::select('band_id', $bands, Input::old('band_id')) }}
    

    只需将$bands 变量传递给ViewLaravel 将为您创建SELECT,您无需手动循环。要检索该值,您可以尝试以下操作:

    $band_id = Input::get('band_id');
    

    【讨论】:

    • 此时会在下拉列表中加载表格带区的所有字段。
    猜你喜欢
    • 1970-01-01
    • 2021-07-30
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多