我正在尝试将此数组添加到我的codeigniter会话变量中:
$formValues = $this->input->post(NULL, TRUE);
$fv = $this->session->set_userdata($formValues);
if (!$this->input->post(NULL, TRUE)) {
echo "false, post is null, get the session";
echo "<pre>";
print_r($fv);
echo "</pre>";
} else {
echo "true, use the post";
$formValues = $this->input->post(NULL, TRUE);
echo "<pre>";
print_r($formValues);
echo "</pre>";
}
print_r($formValues);
<pre>
Array
(
[addtypeid] =>
[isnew] =>
[orderby] =>
[geographicareaid] =>
[catid] => 1
[catid2] =>
[manufacturerid] =>
[modelid] =>
[yearofmanufacturing_from] =>
[yearofmanufacturing_to] =>
[hoursused_from] =>
[hoursused_to] =>
[horsepowers_from] =>
[horsepowers_to] =>
[price_from] =>
[price_to] =>
[colorid] =>
[isdamaged] =>
)
</pre>
使用以下代码:
$this->session->set_userdata($formValues);
然而,我正在使用分页,在下一页上,当我尝试使用以下代码访问变量时:
print_r($formValues);
我得到一个空数组。
任何人都可以帮我这个吗?
答案 0 :(得分:1)
将数组设置为会话数据后,您需要按每个项的键检索它,或者一次检索所有会话数据。
// adds the $formValues array to session data
$this->session->set_userdata($formValues);
// get a single item from the session data ($formValues['addtypeid'])
$addtypeid = $this->session->userdata('addtypeid');
// get all items from the session as an array
$formValues = $this->session->all_userdata();
获取多个特定项目的示例,但不是全部(来自评论):
$formValues = array();
$formKeys = array('addtypeid', 'isnew', /* etc... */ );
foreach ($formKeys as $key)
{
if ($this->session->userdata($key))
{
$formValues[$key] = $this->session->userdata($key);
}
}
OR
$formValues = array(
'addtypeid' => $this->session->userdata('addtypeid'),
'isnew' => $this->session->userdata('isnew'),
/* etc... */
);
基于评论的最后一次编辑: 尝试将整个数组设置为单个会话项而不是单个会话项。
// setting $formValues
$this->session->set_userdata(array(
'formValues' => $formValues
));
// getting $formValues
// the if statement it to prevent it setting $formValues to false when the session data doesn't exist
if ($this->session->set_userdata('formValues'))
{
$formValues = $this->session->set_userdata('formValues');
}
答案 1 :(得分:0)
在使用之前,您需要检索所有会话数据项并重新构建数组,因此,例如,由于您已经通过其提供给会话的数组中的包含来保存addtypeid,因此您可以检索addtypeid用:$this->session->userdata('addtypeid');
答案 2 :(得分:0)
已经能够解决问题了。确保baseurl与您在此处指定的网址相对应。
$this->load->library('pagination');
$config['base_url'] =site_url('/events/viewevent/');
$total= $this->db->get('event_tb');