Codeigniter 如何将会话中的每个数据输出到视图
我有这段代码,我只是不知道如何输出视图中的每个项目,例如firstname、lastname和usernameCodeigniter 如何将会话中的每个数据输出到视图,codeigniter,session,Codeigniter,Session,我有这段代码,我只是不知道如何输出视图中的每个项目,例如firstname、lastname和username controller { $selected_users = array( 'username' => $username, 'firstname' => 'peter', 'lastname' => 'Sample' ); $users = json_decode($t
controller
{
$selected_users = array(
'username' => $username,
'firstname' => 'peter',
'lastname' => 'Sample'
);
$users = json_decode($this->session->userdata('users'), true);
$users[] = $selected_users;
$this->session->set_userdata('users', json_encode($users));
$this ->load->view('db_control\sess');
}
view:
$username = $this->session->userdata('users');
echo $username;
but it output all of it
output of this code is
[{“用户名”:“newtest1”,“名字”:“newtest1”,“姓氏”:“newtest1”},{“用户名”:“sample_-beth”,“姓氏”:“sample_-beth”,“姓氏”:“sample_-beth”},{“用户名”:“默认”,“姓氏”:“默认”,“姓氏”:“默认”}]
这是正确的,但我想输出用户名、lastname和firstname,但仍然是所有记录您可以像这样简单地传递数据 控制器
$data['selected_users'] = array(
'username' => 'testuser',
'firstname' => 'peter',
'lastname' => 'Sample'
);
$this->load->view('viewname',$data );
视图:
echo$selected_用户['username'];
回声“
”;
echo$selected_用户['firstname'];
回声“
”;
echo$selected_用户['lastname'];
在一个变量中设置所选用户数组。试试这个:
controller
{
$selected_users = array(
'username' => $userID,
'firstname' => 'peter',
'lastname' => 'Sample'
);
$this->session->set_userdata($selected_users);
}
view:
echo $this->session->userdata('username');
echo $this->session->userdata('firstname');
echo $this->session->userdata('lastname');
在您的视图中,将您的
代码更改为:
$username = json_decode($this->session->userdata('users'), TRUE);
foreach ($username AS $key => $value) {
echo 'Username: ' . $value['username'];
echo '<br/>';
echo 'First Name: ' . $value['firstname'];
echo '<br/>';
echo 'Last Name: ' . $value['lastname'];
echo '<br/><hr><br/>';
}
$username=json\u decode($this->session->userdata('users'),TRUE);
foreach($key=>$value的用户名){
回显“用户名:”.$value['Username'];
回声“
”;
回显“firstname:”.$value['firstname'];
回声“
”;
回显“姓氏:”.$value['lastname'];
回音“
”;
}
基本上,您正在将JSON
转换回数组,然后在其中循环。但是输出应该是用户名列表,不仅仅是一条记录,它给出了一个输出,而且只有一条记录(它覆盖了以前选择的记录),来自user_data sessions(用户数据会话)的数据是所选所有用户名的列表。是的,它应该是来自user_data session(用户数据会话)的名称列表,但如果我要删除会话user_data(用户数据)中的特定用户名,该怎么办?在foreach
循环中检查用户名并按索引将其删除foreach($username AS$key=>$value){if($value['username']=='my_username')unset($username[$key]);}//重新索引数组$username=array_值($username)//将数据写回会话$this->session->set_userdata('users',json_encode($username))代码>这不是最好的方法,您不应该在会话中存储这么多数据。
$username = json_decode($this->session->userdata('users'), TRUE);
foreach ($username AS $key => $value) {
echo 'Username: ' . $value['username'];
echo '<br/>';
echo 'First Name: ' . $value['firstname'];
echo '<br/>';
echo 'Last Name: ' . $value['lastname'];
echo '<br/><hr><br/>';
}