PHP错误未定义变量:data -使用Codeigniter加载更多数据


PHP Error Undefined variable: data - Loading more data using Codeigniter

我正在通过Codeigniter按下按钮时加载更多数据功能

我有这个问题在我面前解决不了也许问题是数组没有传递给视图!!你能帮忙吗?

Javascript

<script type="text/javascript">
$(document).ready(function(){
var num_ads = <?=$num_ads?>;
var loaded_ads = 0;
    $("#more_button").click(function(){
        loaded_ads += 10;
        $.get("e3lanat/get_ads/" + loaded_ads, function(data){
            $("#Ebda2").append(data);
        });
        if(loaded_ads >= num_ads - 10)
        {
            $("#more_button").hide();
            //alert('hide');
        }
    })
})
</script>
<<p> 视图/strong>
<div id="Ebda2">
<?php foreach ($data['latest_messages'] as $ads)
    {
echo $ads->current_price;
   echo '<div class="water">';
echo 'div class="eye-top">';
echo '<a href="#"><img class="img-responsive" src="public/images/9.jpg" alt=""></a>';
echo '</div>';
echo '<div class="title-blue">';
echo '<h4><a href="#">';
echo $ads->name;
echo "</a></h4>";
echo "<p>";
echo $ads->description;
echo'</p>';
echo '</div>';
}       
?>

</div>
<div id="more_button">
more
</div>
控制器

function __construct(){
    parent::__construct();
                $this->load->model('ads_model');
}
public function index(){
            if($this->session->userdata('logged_in'))
{
    $this->load->model('ads_model');
$data['num_messages'] = $this->ads_model->num_ads();
$data['latest_messages'] = $this->ads_model->get_ads();
$this->load->view('e3lanat_view', $data);
}
else
{
 redirect('signin', 'refresh');
 }
    }
public function insert_rows()
{
$i = 0;
while($i < 50)
{
    $i++;
    $data = array('name' => 'name ' . $i, 'description' => 'description ' . $i,
                'user_id' => 9, 'cat_id' => '1',
                'current_owner_id' => 10, 'cat_id' => '1',
                'initial_price'=> $i+10,
                'current_price'=> $i+50,
                'increase_price'=> $i+30
                );
    $this->db->insert('ads', $data);
    echo $i. '<br />';
}
}

public function get_ads($offset)
{
$this->load->model('ads_model');
$data['latest_messages'] = $this->ads_model->get_ads($offset);
$this->load->view('e3lanat_view/get_ads', $data);
}

**Model**
class ads_model extends CI_Model {
public function __construct()
{
parent::__construct();
}

function get_ads($offset=0)
{
$this->db->order_by('ads_id', 'desc');
$query = $this->db->get('ads', 10, $offset);
return $query->result();
}
function num_ads()
{
$query = $this->db->count_all_results('ads');
return $query;
}
}

提前感谢:)

您正在尝试加载视图而不是返回数据。

在控制器:

public function get_ads($offset) {
    $this->load->model('ads_model');
    $data['latest_messages'] = $this->ads_model->get_ads($offset);
    return json_encode($data['latest_messages']);
}

In View Javascript:

$.get("e3lanat/get_ads/" + loaded_ads, function(data){
    console.log(data);
});

现在需要遍历JSON并将数据附加到视图。看看如何循环遍历JSON对象列表,并向视图添加数据,如下所示:

$("#Ebda2").append('<div class="water"> ...every thing inside... </div>');

change this

<?php foreach ($data['latest_messages'] as $ads)

 <?php foreach ($latest_messages as $ads)