检查已从多选框拉拉环中选择了哪些选项

时间:2016-08-29 23:15:36

标签: php laravel loops

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

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

现在我创建了一个选择框,其中包含从$ cat填充的选项。 现在我想将class附加到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>

我希望得到像图片一样的内容.. enter image description here

1 个答案:

答案 0 :(得分: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;
}