【问题标题】:Retrieving input from Form Select - Laravel从表单选择中检索输入 - Laravel
【发布时间】:2018-12-06 19:31:32
【问题描述】:

当我从视图中选择一个类并单击Genrate 时,我尝试检索所选类的值,但无法获取所选类的值。

当我返回 $condition 时,它返回空。在提交后的url中显示为http://localhost:8000/generate/timetable?class=

为什么会这样?

<div class="row">
    <div class="col-xl-4 col-lg-12 col-md-12 mb-1">
        <fieldset class="form-group">
            <label for="squareText">Type</label>
            {{ Form::select('class',$classes,$selectedClass,['class'=>'form-control','required'=>'true'])}}
            <br>
            <a href="/generate/timetable?class={{ request('class') }}"><button class="btn btn-primary pull-left square"  type="submit"><i class="glyphicon glyphicon-th"></i> Generate</button></a>
        </fieldset>
    </div>
</div>

控制器

$condition = Input::get('class');
if (!isset($condition['class']))
    $condition['class'] = 0;
$courses = $course->where('class',$condition)->get()->toArray();
return $condition;

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您的按钮位于链接内:

    <a href="/generate/timetable?class={{ request('class') }}">
        <button class="btn btn-primary pull-left square" type="submit"> ... </button>
    </a>
    

    单击它实际上是单击&lt;a href&gt; 链接,而不是单击按钮并提交表单。因此,您只需浏览链接指向的 URL,而不是提交表单。

    从您的问题中不清楚该链接的用途,但如果单击该按钮应该提交表单,您可能希望将表单元素放入实际的 &lt;form&gt; 中。

    看起来你正在使用 Laravel Collective({{ Form::select('class .... 看起来像那样),请参阅 those docs on how to open a form

    {!! Form::open(['url' => '/generate/timetable?class=' . request('class')]) !!}
        {{ Form::select('class' .... }}
        <button class="btn btn-primary pull-left square" type="submit"> ... </button>
    {!! Form::close() !!}
    

    你可能还需要添加一个 CSRF 令牌,它也是 described in the Laravel Collective docs,以及 in the Laravel docs

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 1970-01-01
      • 2014-12-23
      • 2015-07-25
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      相关资源
      最近更新 更多