以下是我的观点我正在从模型中捕获数据并使用显示在视图上 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);
但问题是我的数据被下一个值
覆盖了答案 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'));
}