2014-02-18 8 views
-1

Добавление продуктов в мою телегу работает нормально, но после добавления продукта в корзину его не в состоянии просмотреть его в моей странице просмотра без обновления просмотра страницы,Codeigniter корзина для покупок, просматривать содержимое в странице корзины

Я попытался redirect() все еще бесполезен. Как просмотреть мою страницу после добавления продуктов в корзину.

Любая помощь ??

мой контроллер:

<?php 

class Cart extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
    } 

    public function addtocart($cal_id, $f_id) { 
     if (empty($cal_id)) { 
      $this->load->view('Cart_view'); 
     } 
     $this->load->model('cart_model'); 
     $product = $this->cart_model->cart_contents($cal_id, $f_id); 
     foreach ($product as $row) { 
      $name = $row->title; 
      $fees = $row->fees; 
     } 
     $product = array(
      'id' => $cal_id, 
      'qty' => 1, 
      'price' => $fees, 
      'name' => $name, 
     ); 
     print_r($product); 
     $this->cart->insert($product); 
     $this->load->view('Cart_view'); 
    } 

    public function destroy() { 
     $this->cart->destroy(); 
    } 

} 
?> 

моя модель:

<?php 

class cart_model extends CI_Controller 
{ 
    public function __construct() { 
     parent::__construct(); 
    } 
    public function cart_contents($cal_id,$f_id) 
    { 
     $product=$this->db->select('*') 
       ->from('calander') 
       ->join('fees','calander.cal_id=fees.cal_id') 
       ->where('fees.cal_id',$cal_id) 
       ->where('fees.f_id',$f_id) 
       ->get(); 
     return $product->result(); 

    } 
} 
?> 

мой взгляд

<html> 
    <head><title></title></head> 
    <body> 
     <?php 
     if ($cart = $this->cart->contents()) { 
      ?><table> 
       <tr> 
        <td> 
         <h3><u>Cart page</u></h3> 
        </td> 
       </tr> 
       <tr> 
        <th>course</th> 
        <th>Quantity</th> 
        <th>Price</th> 
       </tr> 
       <?php 
       foreach ($cart as $contents) { 
        ?><tr> 
         <td><?php echo $contents['name']; ?></td> 
         <td><input type="text" value="<?php echo $contents['qty']; ?>"></td> 
         <td><?php echo $contents['price']; ?></td> 
        </tr> 

       <?php } ?> 
      </table> <?php 
      // redirect(base_url('/index.php/Cart/Cart_view')); 
     } 
     ?> 
    </body> 
</html> 
+3

показать код? – Mani

+0

спасибо за быстрый ответ, это мой первый раз в стеке, так что можете ли вы плз мне посоветовать добавить код в мою очередь? – Pooja

+0

Нажмите -----> [edit] (http://stackoverflow.com/posts/21846032/edit). Напишите свой код. – csmckelvey

ответ

1

Я не понимаю WHA ты пытаешься сделать. Когда вы загружаете свой вид $this->load->view('Cart_view');, требуется передать массив данных, содержащий все переменные, в поле вида $this->load->view('Cart_view',$data);. Без массива данных представление не может отображать данные. Когда вы когда-либо пишете код, делайте имена переменных таким образом, чтобы другие люди могли понять, что означает эта переменная. Без достаточного количества данных, я беру на себя смелость изменить код

Controller

public function addtocart($cal_id, $f_id) { 
     $data=array(
      'view'=>'' 
     ); 
     if (empty($cal_id)) { 
      $this->load->view('Cart_view',$data); 
     } else { 
      $this->load->model('cart_model'); 
      $product = $this->cart_model->cart_contents($cal_id, $f_id); 
      $data['view']=''; 
      foreach($product as $row): 
       $data['view'].=' <tr> 
       <td>'.$row->title.'</td> 
       <td>'.$row->qty.'</td> 
       <td>'.$row->price.'</td> 
       </tr>'; 
      endforeach; 
      $this->load->view('Cart_view',$data); 
     } 
    } 

МОДЕЛЬ

public function cart_contents($cal_id,$f_id){ 
       $this->db->select('*') 
       $this->db->from('calander') 
       $this->db->join('fees','calander.cal_id=fees.cal_id') 
       $this->db->where('fees.cal_id',$cal_id) 
       $this->db->where('fees.f_id',$f_id); 
       $query = $this->db->get(); 
       return $query->result(); 
    } 

вид

<html> 
    <head><title></title></head> 
    <body> 
     <table> 
       <tr> 
        <td> 
         <h3><u>Cart page</u></h3> 
        </td> 
       </tr> 
       <tr> 
        <th>course</th> 
        <th>Quantity</th> 
        <th>Price</th> 
       </tr> 
       <?php if($count>0){ 
        echo $view; 
       }?> 
      </table> 
    </body> 
</html> 
+0

благодарим за ответ Akhil, В моем коде я добавляю товары в корзину через $ this-> cart -> метод insert(); и извлекать его с учетом $ this-> cart-> contents(), вставка и отображение в порядке. но после добавления в корзину мне нужно обновить страницу, чтобы показать контент для контента. – Pooja

+0

Вы передавали данные во время загрузки изображения? $ This-> load-> Вид ('Cart_view', $ данных); Я havent видел функцию модели вставки здесь –

+0

Мне кажется, мне не нужно передавать любые данные с контроллера для просмотра. потому что я могу получить содержимое корзины из $ this-> cart-> contents(), поэтому я извлекаю его и просматриваю его. – Pooja

Смежные вопросы