【问题标题】:Preselect option in form with PHP使用 PHP 在表单中预选选项
【发布时间】:2017-06-12 11:04:34
【问题描述】:

我有一个 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>

【问题讨论】:

    标签: php laravel multi-select


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      希望这会有所帮助!

      【讨论】:

        【解决方案3】:

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

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

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

        那可以试试

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-14
          • 2022-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多