[英]Place query results in different divs
我試圖在不同的div中以我的視圖顯示查詢的結果,我花了整整一天的時間在ellislab上閱讀,如果我正確理解了result()函數返回一個對象, 那么如何顯示結果,這是我的模型:
模型
function get_post(){
$this->db->select(*);
$this->db->order_by('date_time', 'desc');
$this->db->limit(2);
$results = $this->db->get('post');
if($results->num_rows()<1){
return false;
}
else{
return $results->result();
}
}
這就是我的控制器的作用:
控制者
foreach($results as $res){
$data['post_signature'] = $res->signature;
$data['post_title'] = $res->title;
$data['post_article'] = $res->article;
$data['post_date'] = date('d-M-Y', strtotime($res->date_time));
$data['post_time'] = date('H:i', strtotime($res->date_time));
}
我想顯示的是一個div中的一系列結果,而另一個div中的第二個結果。
<div id="1">First Result</div>
<div id="2">Second Result</div>
我要做的就是將整個查詢結果傳遞給視圖並使用foreach,如下所示:
<?php foreach ($results as $res)
<div id="1">First Result</div>
<div id="2">Second Result</div>
?>
顯然,此方法的問題在於,此foreach只是將div重復,而我只想將第一個結果放在第一個div中,將第二個結果放在第二個div中。 我也想將foreach更改為控制器,並使用for語句將返回的所有參數保存到數據數組中,但是由於某些原因,這似乎效率很低。
希望您有更好的解決方案。
將其更改為
<?php
$i=1;
foreach ($results as $res) {
echo '<div id="'.$i++.'">'.$res.'</div>';
}
?>
foreach部分不正確。 您必須分開php / html代碼。
也許您可以嘗試以下方法:
<?php foreach ($results as $key => $res) {
echo '<div id="'.$key.'">'.implode(' ', $res).'</div>';
}
?>
您應該將$results
對象傳遞給視圖,並在其中使用foreach
:
// in your view (assuming you passed the $results as-is
<?php
foreach ($results as $res)
{
echo '<div id="' . $res->id . '">';
echo $res->title . '<br />';
echo 'Posted ' . date('d-M-Y', strtotime($res->date_time)) . ' ';
echo 'at ' . date('H:i', strtotime($res->date_time)) . '<br />';
echo '<p>' . $res->article . '</p>';
echo '</div>';
}
/**
you'll get something like the following
<div id="1">
My Title<br />
Posted 14 Jan 2012 at 16:40<br />
<p>Lorem ipsum dolor sit amet.</p>
</div>
<div id="2">
Another Title<br />
Posted 14 Jan 2012 at 16:45<br />
<p>Lorem ipsum dolor sit amet also.</p>
</div>
*/
這個想法是$results
是結果對象的集合,因此,當您在控制器中遍歷它們時(例如問題中的示例),您不會在視圖中獲得對象的“集合”。 循環瀏覽視圖可讓您管理這些結果的集合(以及顯示)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.