PHP - 循环管理复选框

时间:2014-05-05 10:54:15

标签: php html mysql for-loop foreach

所以,我有一个包含所有menu_ids的变量。 所以我要展示的是 - 检查当前变量,即$ get_all_menu_values,如果值在那里,则标记为tick(选中)。 否则请留空。

   <?php    
    $get_all_menu_values = "1,2,3,4,5"; ?>
    <ul>
    <?php foreach ($getSubMenuValues as $sub_menu): ?>
    <li class='has-sub'><a href='<?=$sub_menu['menu_url']; ?>'><span><?=$sub_menu['menu_name']; ?></span></a></li>
    <div align="center"><input type="checkbox" class="form" value="" name="get_menu_values[]" /></div>
    <?php endforeach; ?>   
    </ul>

换句话说 - 检查$ get_all_menu_values,如果m_id相同,则检查它。或多或少用IN数组检查我猜。 但不知道该怎么做。 任何帮助。

谢谢, Kimz

2 个答案:

答案 0 :(得分:2)

是的,in_array就是您所需要的,

<?php
 $get_all_menu_values_array = explode(",",$get_all_menu_values); 
 foreach ($getSubMenuValues as $sub_menu):
   $isChecked = '';
   if(in_array($sub_menu['m_id'],$get_all_menu_values_array) {
      $isChecked = "checked='checked'";
   } 
?>
<li class='has-sub'><a href='<?=$sub_menu['menu_url']; ?>'><span><?=$sub_menu['menu_name']; ?></span></a></li>
<div align="center"><input type="checkbox" class="form" value="" name="get_menu_values[]" <?=$isChecked; ?> /></div>
<?php endforeach; ?>   

答案 1 :(得分:0)

使用in_array检查值

    $get_all_menu_values = "1,2,3,4,5";
    <ul>
    <?php foreach ($getSubMenuValues as $sub_menu){ ?>
    <li class='has-sub'><a href='<?=$sub_menu['menu_url']; ?>'><span><?=$sub_menu['menu_name']; ?></span></a></li>
    <div align="center"><input type="checkbox" class="form" value="" <?php (in_array($sub_menu["m_id"], $get_all_menu_values) ? "checked='checked'" : ""; ?> name="get_menu_values[]" /></div>
    <?php } ?>   
    </ul>