PHP 形式的预选选项

Preselect option in form with PHP

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

["oldest","rating"]

我在视图中的 PHP 变量中再次拥有该数组,但是对于 PHP 我如何预先 select 那些。我正在寻找一种优雅干净的方法来实现这一目标。提前致谢!

已编辑:

这是我的表格:

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

我建议您使用 Laravel 集体 Form::select()

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

Laravel集体肯定会让你的生活更轻松。

但是为了回答所提出的问题,您需要为用户已经选择的选项设置 "selected" 属性:

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

希望对您有所帮助!

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

假设您发送到视图的 variable/array 是:

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

那可以试试

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

基于blade,未测试所以不太确定!