我使用foreach循環在我的控制器代碼點火器的foreach和查看
foreach ($x as $y) {
// do some stuff
// load view
$this->load->view('success', $data);
// $data can be multiple arrays
}
它的work..but的CSS,JS,在視圖中的元素被反覆..
請指導我如何使CSS,JS只加載一次:)
感謝
我使用foreach循環在我的控制器代碼點火器的foreach和查看
foreach ($x as $y) {
// do some stuff
// load view
$this->load->view('success', $data);
// $data can be multiple arrays
}
它的work..but的CSS,JS,在視圖中的元素被反覆..
請指導我如何使CSS,JS只加載一次:)
感謝
這很可能是「做一些東西」,需要放在多維數組中,而不是直接放在$data
陣列中。這是更好地發佈你的「做一些東西」和你的觀點,但無論如何,這是你應該怎麼做:
$data_holder = array();
foreach ($x as $y) {
// do some stuff
$data_holder[] = $do_some_stuff_results;
}
$data['do_stuff_array'] = $data_holder;
$this->load->view('success', $data);
現在,您可以循環,變量視圖,而不是隻得到一個結果,可能是這樣的:
foreach ($do_stuff_array as $arr)
echo "<li><img src=\"" . $arr['img_src'] . "\" alt=\"" . $arr['img_title'] . "\" /></li>";
這是因爲你在加載foreach語句的看法。每當循環進行時,視圖都會重新加載。您需要在循環中收集您的$data
,然後在循環結束後調用視圖。
foreach ($x as $y) {
// do some stuff
// $data can be multiple arrays
}
//load the view after the foreach has finished
$this->load->view('success', $data);
您當前正在循環的每次迭代中重複加載視圖。像這樣,一旦循環結束,它就會加載它。
設想二
從你的代碼,我相信你重新分配你的$data
變量中的每個循環
foreach ($x as $y) {
// do some stuff
//
$data['array'] = array("here","is","an","array");
}
//load the view after the foreach has finished
$this->load->view('success', $data);
在上面的例子中的迭代一旦視圖被加載會有$ data ['array']中的一個數組,因爲每次都覆蓋它。如果你想要$data['array']
是一個多deminsional陣列喜歡你的建議,試試這個...
foreach ($x as $y) {
// do some stuff
//
$data['array'][] = array("here","is","an","array");
}
//load the view after the foreach has finished
$this->load->view('success', $data);
這將追加$data['array']
,而不是覆蓋它,你會用什麼的你追加數組結束在整個循環中。
嗨,我已經嘗試過..但沒有成功,爲了測試目的,我已經將print_r添加到視圖中..但只有生成的第一個數組被回顯在視圖中..所有的功能都是爲了工作在循環中工作(更新數據庫等)。 – Vamsi 2011-01-14 16:33:58
'成功'視圖是什麼? – 2011-01-14 15:58:01