如何在编码器中显示flashdata


How to display flashdata in codeigniter

以下是我的视图,我从模型中捕获数据并在视图上显示使用Flashdata in codeigniter

My Controller 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'));
}

My view .php

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

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

覆盖了

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