【问题标题】:PHP set the checkbox to be checked if data in Array 1 equal Array 2如果数组 1 中的数据等于数组 2,PHP 设置要检查的复选框
【发布时间】:2017-01-11 09:11:15
【问题描述】:

我有从 mysql 检索的数组。

Array item_category 是一个显示所有类别的数组。

Array selected_category 是一个显示所选类别的数组。

$item_category[32]="western food";  
$item_category[33]="chinese food";  
$item_category[34]="mix food";     
$item_category[35]="japanese food"; 
$item_category[36]="korean food";   
$item_category[37]="italian food";  

$selected_category[32]="western food"; 
$selected_category[33]="chinese food";  
$selected_category[34]="mix food";    

foreach ($item_category as $key => $value) {

    echo '<input type="checkbox" name="check_list[] "value="'.$key.'"> '.$value.'<br>';

}

  1. 使用 foreach 循环显示所有类别

  2. 选中数组$selected_category中的复选框。

所以我的问题是如何像屏幕截图一样选中复选框,因为它们在这 2 个数组中具有相同的“Key”?我尝试了以下方法,但它没有按我的预期工作。

$checked = true ? "checked" : "";
echo '<input type="checkbox" ' . $checked . ' name="check_list[] "value="'.$key.'"> '.$value.'<br>';

【问题讨论】:

    标签: php mysql arrays checkbox


    【解决方案1】:

    您需要检查$key 中的$item_category 是否出现在$selected_category 中。这可以通过isset 函数来完成:

    foreach ($item_category as $key => $value) {
        // check if `$key` set in `$selected_category` 
        $checked = isset($selected_category[$key])? 'checked' : '';
    
        echo '<input type="checkbox" ' . $checked .' name="check_list[] "value="'.$key.'"> '.$value.'<br>';
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

      $item_category[32]="western food";  
      $item_category[33]="chinese food";  
      $item_category[34]="mix food";     
      $item_category[35]="japanese food"; 
      $item_category[36]="korean food";   
      $item_category[37]="italian food";  
      
      $selected_category[32]="western food"; 
      $selected_category[33]="chinese food";  
      $selected_category[34]="mix food";    
      
      foreach ($item_category as $key => $value)
      {
      
          echo '<input type="checkbox" name="check_list[] "value="' . $key . '" ' . ((in_array($value), $selected_category) ? 'checked="checked"' : '') . '>    '.$value.'<br>';
      
      }
      

      in_array() function 如果一个指定的值存在于一个指定的数组中,则返回 true

      【讨论】:

        【解决方案3】:

        试试下面的代码,它对你有用。

        <?php
        $item_category[32]="western food";  
        $item_category[33]="chinese food";  
        $item_category[34]="mix food";     
        $item_category[35]="japanese food"; 
        $item_category[36]="korean food";   
        $item_category[37]="italian food";  
        
        $selected_category[32]="western food"; 
        $selected_category[33]="chinese food";  
        $selected_category[34]="mix food";    
        
        foreach ($item_category as $key => $value) {
              echo '<input type="checkbox" '.(isset($selected_category[$key])? 'checked' : '').' name="check_list[] "value="'.$key.'"> '.$value.'<br>';
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-06-25
          • 2018-09-22
          • 2021-11-07
          • 2020-06-04
          • 1970-01-01
          • 1970-01-01
          • 2020-06-29
          • 2018-07-21
          相关资源
          最近更新 更多