首页 文章

使用PHP在表单中预选选项

提问于
浏览
1

我有一个PHP应用程序(Laravel 5.2)...我有一个包含选择倍数的表单,它被正确发送到控制器,然后在控制器中我根据用户在该表单中给出的信息进行一些操作(是一个完全的搜索表单,我发送新信息到视图,然后我再次打印表格,但我想再次填写数据 . 我的意思是,现在我想预先选择以前选择的选项,用户可以先发送:

[ “最老”, “评级”]

我在视图中再次在PHP变量中使用该数组,但是使用PHP我如何预先选择那些 . 我正在寻找一种优雅的干净方式来实现这一目标 . 提前致谢!

EDITED:

这是我的表格:

<form action="myaction" method="post">
<div class="form-group">
   <input type="text" name="name" class="form-control" placeholder="File name">
</div>
<select name="orderBy[]"  multiple="multiple" class="form-control form-group" data-placeholder="Order by" style="width: 100%;">
    <option value="oldest">Oldest</option>
    <option value="latest">Latest</option>
    <option value="rating">Rating</option>
    <option value="poster">Poster</option>
</select>
</form>

3 回答

  • 1

    Laravel Collective绝对会让您的生活更轻松 .

    但是为了回答问题,您需要做的是为用户已选择的选项设置“selected”属性:

    <option value="oldest"<?php echo in_array('oldest', $user_values_array) ? ' selected' : ''; ?>>Oldest</option>
    

    希望这可以帮助!

  • 4

    我建议你使用Laravel Collective Form::select()

    {!! Form::select('size', $dataArray, $selectedArray, ['multiple' => true]) !!}
    
  • 0

    如果选项是硬编码的而不是循环等,你可以尝试:

    说你发送到视图的变量/数组是:

    $myselection = ["oldest","rating"];
    

    然后尝试一下

    <option @if(in_array('oldest', $myselection) selected @endif>oldest</option>
    <option @if(in_array('latest', $myselection) selected @endif> latest </option>
    

    基于刀片,未经测试,所以不太确定!

相关问题