2014-02-21 59 views
0

我想這個陣列添加到我的笨會話變量:會話變量是第二頁(分頁)在笨的空

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

I得到一個空數組。

任何人都可以幫助我嗎?

+0

請提供一個缺少的代碼。 –

+0

我會在一分鐘內更新我的文章... – user2417624

+0

嗨,我只添加了與會話相關的代碼,因爲控制器相當大...你能發現爲什麼這個數組沒有被添加到這個代碼的會話中嗎?如果沒有,我會上傳整個控制器,但它是...大... – user2417624

回答

0

您需要檢索所有會話數據項並在使用它之前重建數組,例如,因爲您已通過包含在提供給會話的數組中的includsion保存了addtypeid,那麼您可以檢索addtypeid與:$this->session->userdata('addtypeid');

+0

史蒂夫,該代碼返回一個空數組....當然,因爲我從控制器打印它,我得到一堆錯誤頭已發送,但數組是空的...當我使用print_r – user2417624

+0

時沒有顯示,但如果我print_r all_userdata,那麼值是存在的,但個人,而不是一個數組......這是我的問題 – user2417624

1

將數組設置爲會話數據後,您需要按每個項目的鍵檢索它,或者一次檢索所有會話數據。根據意見

$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... */ 
); 

最後一個編輯:

// 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(); 

獲得多個具體項目的例子,但不是所有(從評論) 嘗試將整個陣列到單個會話項目而不是單個會話項目。

// 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'); 
} 
+0

不幸的是,$ formValues = $ this- >會話級> all_userdata();返回all_userdata,因此函數名稱...我只需要那些存儲在formValues中的變量...不是alluserdata .... – user2417624

+0

然後你必須得到每個名稱。您可以循環任何具有項目名稱/鍵的數組來填充新數組。我會用一個例子來編輯答案。 – Samutz

+0

空陣列再次....我們可以繼續聊天嗎?你有15分鐘看一看嗎? – user2417624

0

已能解決問題。確保baseurl與您在此處指定的網址一致。

$this->load->library('pagination'); 
    $config['base_url'] =site_url('/events/viewevent/'); 
    $total= $this->db->get('event_tb');