【问题标题】:Checking which options are already selected from multi select box laravel loop in view检查已从视图中的多选框 laravel 循环中选择了哪些选项
【发布时间】:2017-01-06 02:14:44
【问题描述】:

我遇到了循环问题。我在两个数组中传递帖子的所有类别和类别。

$cat = [1,2,3,4] // 类别 ID $catOfPost = [2,3] // 帖子已经有这些类别

现在我创建了一个选择框,其中包含从 $cat 填充的选项字段。 现在我想将类附加到 id 与 $catOfPost 匹配的选项。

我已经尝试过。

<select name="test[]">
      @for($i = 0; $i< count($cat); $i++)
        @for($x=0; $x < count($catOfPost); $x++)
          <option 
          @if($catOfPost[$x]->id == $cat[$i]->id )
            class="test"
          @endif  
          value="{{$cat[$i]->id}}">{{$cat[$i]->name}}</option>
        @endfor
      @endfor
</select>

我想得到类似下图的东西..

【问题讨论】:

    标签: php laravel loops


    【解决方案1】:

    您需要将 $catOfPost 设为一个仅包含附加到帖子的所有类别的 id 的数组。在这种情况下,您的代码将如下所示:

    <select name="test[]">
          @for($i = 0; $i< count($cat); $i++)
              <option 
              @if(in_array($cat[$i]->id, $catOfPost) )
                class="test"
              @endif  
              value="{{$cat[$i]->id}}">{{$cat[$i]->name}}</option>
          @endfor
    </select>
    

    要创建一个只有 id 的数组,您应该使用以下代码:

    $catOfPostIds = [];
    foreach($catOfPost as $item) {
        $catOfPostIds[] = $item->id;
    }
    

    【讨论】:

    • 完美。将控制器函数转换为传递数组..像魅力一样工作,
    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多