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,未测试所以不太确定!
我有一个 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,未测试所以不太确定!