如何在codeigniter中显示flashdata

时间:2014-08-23 06:54:39

标签: php html5 codeigniter codeigniter-2

以下是我的观点我正在从模型中捕获数据并使用显示在视图上 codeigniter中的flashdata

我的控制器cart.php

 public function coupon(){
    for ($i = 0; $i <= $this->input->post("products_in_cart"); $i++) {

        if (!empty($this->input->post("coupn-" . $i))) {

            $couponname = $this->input->post("coupn-" . $i);
            $products_id = $this->input->post("product_id" . $i);

            $data = $this->home_model->getCoupon($couponname, $products_id);
            $data1 = 'hello';
            $info = array(
                "PromotioanlName" => $data->PromotionalName,
            );
        } else {

            $info = 'Thers in no value<br>';
        }



    }
    echo $this->session->set_flashdata('message', $info);
    redirect(site_url('cart'));
}

我的观点cart.php

 $message = $this->session->flashdata('message');
  print_r($message);

但问题是我的数据被下一个值

覆盖了

1 个答案:

答案 0 :(得分:0)

for循环中,您已撰写if并且在if中,$info是一个数组,在else中,$info是字符串!因此,当if的条件为真时,在循环中,它将作为一个数组工作,如果条件在循环的第二次递归中再次为真,它将被覆盖!!虽然条件为false,但它将返回将覆盖您的数组的字符串..

尝试使用,$info[]代替$info。可能会解决您的问题..

public function coupon(){
    for ($i = 0; $i <= $this->input->post("products_in_cart"); $i++) {

        if (!empty($this->input->post("coupn-" . $i))) {

            $couponname = $this->input->post("coupn-" . $i);
            $products_id = $this->input->post("product_id" . $i);

            $data = $this->home_model->getCoupon($couponname, $products_id);
            $data1 = 'hello';
            $info[] = array(
                "PromotioanlName" => $data->PromotionalName,
            );
        } else {

            $info[] = 'Thers in no value<br>';
        }



    }
    echo $this->session->set_flashdata('message', $info);
    redirect(site_url('cart'));
}