У меня есть список флажков в моем представлении, где я получаю значения, загруженные из базы данных.
<input type="checkbox" id="CheckBoxAdmin" name="CheckBoxAdmin" <?php echo $Admin; ?> />Admin
<input type="checkbox" id="CheckBoxCreateUser" name="CheckBoxCreateUser" <?php echo $CreateUser; ?> />Create User
Я передаю значение этому через мой контроллер.
$this->load->view('edituserview', $data);
$ 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. Я хочу передать значение, как оно есть в контроллере, для просмотра.
Любая помощь будет высоко оценена.
Я понял свою ошибку. К коду $ нельзя получить глобальный доступ, поскольку он объявлен в цикле. В моем файле просмотра я пишу логику, как показано ниже,
<?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";
}
?>
В моем файле контроллера я просто передаю массив $ data, а не пишу логику.
$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);
?>
попробуй это