2014-12-30 6 views
0
$data=array(); 
$data[]= array('product_id'=>$this->input->post('product_id'), 
       'quantity'=>$this->input->post('quantity'), 
       'unit'=>$this->input->post('unit'), 
       'unit_rate'=>$this->input->post('unit_rate')); 

        $this->session->set_userdata('data',$data); 
       $post_array['cart'][]=$this->session->userdata('data'); 

$ post_array에 $ data를 추가하고 싶습니다. codeigniter로 어떻게 할 수 있습니까 ??다른 배열에 연관 배열을 추가하는 중

이 코드는 고객이 추가 한 각 제품을 세션에 저장하려는 장바구니를 만드는 데 사용됩니다. 그리고 별도의 테이블에 사용자가 추가 한 모든 제품을 표시하려고합니다.

+1

그냥 간단한 시도가 할당하는'$의 post_array [ '카트'] [] = $ data' – vaso123

+0

후 ?? foreach 루프를 사용하여 어떻게 액세스합니까 ?? –

+0

이것은 모든 단계에서 어려울 것입니다. 내 제안은 장바구니에 대한 데이터베이스 테이블을 만드는 것입니다. 첫 번째 항목을 선택하면 사용자에 대한 고유 한 ID를 만들고 해당 ID를 세션에 저장합니다. 카트 테이블에서 고유 ID를 사용하십시오. 새 페이지 - 세션에서 고유 ID를 검색하고 고유 ID를 사용하여 카트 테이블의 항목을 반환합니다. – cartalot

답변

2

데이터를 카트 배열에 간단하게 지정할 수 있습니다. 당신이하지 않는 게시물에 대한 세션에 추가하려면,

foreach ($post_array['cart'] as $item) { 
    echo 'Id of product: ' . $item['product_id']."<br />"; 
    echo 'Quantity: ' . $item['quantity']."<br />"; 
    //and so on... 
} 

을하지만 난 가정 오전 : 해당 통해 루프를 원하는 경우

$post_array['cart'][] = $data; 

나중에, 당신은이를 사용할 수 있습니다. 영업 이익의 의견에

편집

자료. $ _SESSION [ 'data'] 변수는 항상 덮어 씁니다. 그래서 새로운 배열로 추가 :

//Set the data 
$data[] = array('product_id' => $this->input->post('product_id'), 
    'quantity' => $this->input->post('quantity'), 
    'unit' => $this->input->post('unit'), 
    'unit_rate' => $this->input->post('unit_rate')); 
//Get the cart 
$cart = $this->session->userdata('data'); 
//Add data to this temporary variable 
$cart[] = $data; 
//Set back the data 
$this->session->set_userdata('data', $cart); 

//Later, when you want to iterate through the cart: 
foreach ($this->session->userdata('data') as $item) { 
    echo 'Id of product: ' . $item['product_id'] . "<br />"; 
    echo 'Quantity: ' . $item['quantity'] . "<br />"; 
    //and so on... 
} 
+0

당신은 바로 세션에서 그것을 추가하고 싶습니다. 그리고 지금 당신이 말한 것을 정확히하고 있습니다. 조금 문제는 사용자가 다른 제품을 추가 할 때 두 번째 제품 행이 첫 번째 제품 행을 대체한다는 것입니다. –

+0

내 편집 된 답변을 확인하십시오. – vaso123

+0

나는 그것을 시험해 보았지만 새로운 행으로 이전 행을 다시 대체했다. 내 전체 코드를 보여 주겠습니까? –

관련 문제