使用PHP

时间:2017-01-26 20:38:43

标签: php laravel multi-select

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

["最老""评价"]

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

编辑:

这是我的表格:

<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 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

Laravel Collective一定会让您的生活更轻松。

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

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

希望这有帮助!

答案 2 :(得分:0)

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

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

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

然后尝试

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

基于刀片,没有经过测试,所以不太确定!