簡體   English   中英

如何在PHP中使用foreach循環在多個復選框中設置所選屬性?

[英]How to set selected properties in multiple checkboxes with foreach loop in PHP?

我想顯示所有類別,並且要將選定的屬性設置為多個復選框。

<div class="col-md-10">
<?php 

$allCategories = $category->getAllCategory();

if ($allCategories) {

$categoryAccess = $category_permitted->getCategoriesByUserId($user_info[0]->id);

foreach ($allCategories as $key => $items) {
    if ($categoryAccess) {
        foreach ($categoryAccess as $key => $value) {
            ?>
            <input type="checkbox" name="cat_access[]" value=" <?php echo $items->id ?> " <?php echo (isset($categoryAccess) && @$categoryAccess[$key]->id == $items->id) ? 'checked' : '' ?>><?php echo $items->title?>
            <?php
        }
    }

    ?>

    <?php
}
}
 ?>
    </div>

遍歷$categoryAccess我選擇了兩個選項,但我得到的所有類別都重復兩次作為輸出,即category1類別1類別2類別2類別3類別3類別4類別4。

我有4個帶有復選框的類別,對於輸出,應檢查其中2個類別。 我在<?php echo (isset($categoryAccess) && $categoryAccess->id == $items->id) ? 'selected' : '' ?>遇到錯誤<?php echo (isset($categoryAccess) && $categoryAccess->id == $items->id) ? 'selected' : '' ?> <?php echo (isset($categoryAccess) && $categoryAccess->id == $items->id) ? 'selected' : '' ?>它給此錯誤:試圖讓屬性'非對象的ID'和當我<?php echo (isset($categoryAccess) && $categoryAccess[0]->id == $items->id) ? 'selected' : '' ?> <?php echo (isset($categoryAccess) && $categoryAccess[0]->id == $items->id) ? 'selected' : '' ?>它給出數據,但只能是0索引。

var_dump($categoryAccess)

array(2)
{
    [0]=> object(stdClass)#6 (3)
    {
        ["id"]=> string(1) "1"
        ["user_id"]=> string(1) "2"
        ["title"]=> string(25) "category1"
    }
    [1]=> object(stdClass)#20 (3)
    {
        ["id"]=> string(1) "3"
        ["user_id"]=> string(1) "2"
        ["title"]=> string(18) "category2"
    }
}

嘗試這個:

<?php

$allCategories = $category->getAllCategory();
$categoryAccess = $category_permitted->getCategoriesByUserId($user_info[0]->id);

foreach ($allCategories as $items) {

  $checked = '';    

  foreach ($categoryAccess as $value) {

    if($items->id == $value->id){
      $checked = 'checked';
      break;
    } 
  }
  ?>

  <input type="checkbox" name="cat_access[]" value="<?php echo $items->id ?>" <?php echo $checked ?>>
  <?php echo $items->title?>

  <?php
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM