CodeIgniter模型中的 AJAX 参数不可用

wwtsj6pe  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(143)

我正在CodeIgniter中 * 加载更多 * 功能。
问题是,当我点击Load More按钮时,一个使用 AJAX 的请求发送到控制器。但是参数没有到达CodeIgniter模型,但是我可以在控制器中打印它。下面是代码,你可以正确理解问题。

** AJAX 请求**

function loadmore(){
    var pid = $('#last_id').val();
    base_url="<?php  echo base_url(); ?>";
    
    $.ajax({
        type : "post",
        url:base_url+"News/loadmore_news",
        data : {'pid' : pid},
        success : function(res){
            for(var i=0;i<res.length;i++){
                // here is my code
            }
        }
    });
}

控制器

function loadmore_news(){
    $lastid = $this->input->post('pid'); // here when i print this it shows the value which is coming from ajax request.
    $more_news = $this->news_model->get_more_news($lastid);
    echo jsone_encode($more_news);
}

型号

function get_more_news($last_id){
        //echo $last_id;  here when I print it is shows nothing.
        $this->db->select('*')->order_by('id desc');
        $this->db->where(array('id <'=>$last_id,'domain_id'=> config_item('domain_id')));
        $this->db->order_by('id desc');
        $this->db->limit(6);
        $query = $this->db->from('press')->get();
        $getmorenews = $query->result();
        return $getmorenews;
    }

当参数未到达模型时,显示以下DB错误。
SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第4行“AND domain_id = '86' ORDER BY id desc,id desc LIMIT 6”附近使用的正确语法。
由于$last_id未从控制器获取值,因此以下查询将出错。

SELECT * FROM `press` WHERE `id` < AND `domain_id` = '86' ORDER BY `id` desc, `id` desc LIMIT 6

问题

我的问题是我做错了什么,因为我没有得到模型中的变量值?

laximzn5

laximzn51#

对不起,我不能评论,由于缺乏声誉。我猜你需要调试变量。这里是一些想法。

  • 在javascript函数loadmore中,console.log pid变量。
  • 在控制器函数中,只打印包含值或不包含值的变量。

你的模型没问题谢谢

brvekthn

brvekthn2#

hello @Hamza Zafeer时间bool值就像0一样,它什么都不显示首先尝试一个静态值,如果它来了,那么你可以尝试用这个
主计长

function loadmore_news(){
$lastid = '123'; // here when i print this it shows the value which is coming from ajax request.
$more_news = $this->news_model->get_more_news($lastid);
echo jsone_encode($more_news);}

相关问题