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);
?>