Php 将值从控制器传递到codeigniter中的视图

Php 将值从控制器传递到codeigniter中的视图,php,arrays,codeigniter,checkbox,Php,Arrays,Codeigniter,Checkbox,我在视图中有一个复选框列表,从中可以获取从数据库加载的值 <input type="checkbox" id="CheckBoxAdmin" name="CheckBoxAdmin" <?php echo $Admin; ?> />Admin <input type="checkbox" id="CheckBoxCreateUser" name="CheckBoxCreateUser" <?php echo $CreateUser

我在视图中有一个复选框列表,从中可以获取从数据库加载的值

    <input type="checkbox"  id="CheckBoxAdmin" name="CheckBoxAdmin" <?php echo $Admin; ?>    />Admin
    <input type="checkbox"  id="CheckBoxCreateUser" name="CheckBoxCreateUser" <?php echo   $CreateUser; ?>  />Create User
$data包含一个用户权限数组

     for($i=0;$i<$max;$i++)
     {
     if( $pieces[$i]=="Admin"  ) 
      {
         $data['Admin']="checked";
      }
      else
      {
        $data['Admin']="";
      }
      if( $pieces[$i]== "Create User") 
      {
          $data["CreateUser"]="checked";
      }
      else
      {
        $data["CreateUser"]="";
      }

     }

      $this->load->view('edituserview', $data);
但问题是,当我回显$Admin或$CreateUser时,无论复选框是否选中,我都看不到复选框的正确状态。我想按控制器中的状态将值传递给视图


我们将非常感谢您的帮助

我发现了我的错误。无法全局访问$pieces,因为它是在循环中声明的。在我的视图文件中,我编写了如下逻辑:

    <?php
    $Admin="";
    $CreateUser="";

    $prv= element('privileges',  $users);
    $pieces = explode(",", $prv);
    $data['priviledges']= str_replace(array('[',']'),'',$pieces);
    $pieces= str_replace(array('[',']'),'',$pieces);
    $max = sizeof($pieces);

     if (in_array('Admin', $pieces, true))
     {
        $Admin="checked";
     }

      if(in_array("Create User", $pieces, true)) 
      {
          $CreateUser="checked";
      }

      ?>
现在我可以正确地获得正确的状态

<?php
  $data['Admin'] = false;
  $data['CreateUser'] = false;
  for($i=0;$i<$max;$i++) {
    if($pieces[$i] == "Admin") {
      $data['Admin'] = true;
    }
    if($pieces[$i] == "Create User") {
      $data['CreateUser'] = true;
    }
  }

  $this->load->view('edituserview', $data);
?>

试试这个

可能没有足够的信息来帮助您调试。首先确保$pieces[$1]具有预期值,但会重复该值。然后通过print_r$data确保$data具有预期值。我可以问一下$pieces的内部是什么,以及您从$I收集了什么吗?@PK很抱歉,我没有包括全部代码,因为它包括模型文件和控制器上的一些冗长逻辑。当我单独打印$pieces[$I]时,我得到了预期的数据。@JamesLalor在$pieces中,我正在收集一组特权。例如,当我回显$pieces[$I];,我可以找管理员$i用于迭代循环。很抱歉,没有完整的代码,我把你们都弄糊涂了。你每次都在覆盖你的管理员
     $data['users'] = $this->Usermodel->RetrieveUsers( $userid);
     $this->load->view('edituserview', $data);
<?php
  $data['Admin'] = false;
  $data['CreateUser'] = false;
  for($i=0;$i<$max;$i++) {
    if($pieces[$i] == "Admin") {
      $data['Admin'] = true;
    }
    if($pieces[$i] == "Create User") {
      $data['CreateUser'] = true;
    }
  }

  $this->load->view('edituserview', $data);
?>