CI 分页,POST 方法不起作用

问题描述 投票:0回答:1

好吧,我对 CI 还很陌生,我被困在分页上。我正在对作为查询结果的记录集执行此分页。现在一切似乎都运转良好。但链接可能存在一些问题。我每页显示 10 个结果。现在如果结果小于 10 那就没问题了。或者,如果我提取表中的全部记录,它就可以正常工作。但如果结果超过 10 行,则前 10 行会完美显示,当我单击分页链接进入下一页时,下一页会显示查询的其余结果以及其他结果表中记录。 ???我很困惑..有什么帮助吗?

这是我正在使用的模型代码....

function getTeesLike($field,$param)
{
    $this->db->like($field,$param);
    $this->db->limit(10, $this->uri->segment(3));
    $query=$this->db->get('shirt');
    if($query->num_rows()>0){
        return $query->result_array();
    }
}

function getNumTeesfromQ($field,$param)
{
    $this->db->like($field,$param);
    $query=$this->db->get('shirt');
    return $query->num_rows();
}

这是控制器代码......

$KW=$this->input->post('searchstr');
$this->load->library('pagination');
$config['base_url']='http://localhost/cit/index.php/tees/show/';
$config['total_rows']=$this->T->getNumTeesfromQ('Title',$KW);
$config['per_page']='10';
$this->pagination->initialize($config);
$data['tees']=$this->T->getTeesLike('Title',$KW);
$data['title']='Displaying Tees data';
$data['header']='Tees List';
$data['links']=$this->pagination->create_links();
$this->load->view('tee_res', $data);

我在这里做错了什么???请帮忙...

我猜问题出在

$KW=$this->input->post('searchstr');
.. 因为如果我硬编码
$KW
的值,它就可以正常工作。也许我应该以不同的方式使用 POST ..但是我如何传递表单中的值而不发布它,它的 CI 所以不是 GET ...??????

codeigniter post pagination
1个回答
0
投票

控制器

<?php

$KW=$this->input->post('searchstr');
$this->load->library('pagination');

$count = $this->model_name->getNumTeesfromQ($KW);//Count


$config['base_url']= base_url().'index.php/tees/show/';
$config['total_rows']= $count;
$config['per_page']='10';
$config['uri_segment'] = 4;
$limit = $config['per_page'];

$this->pagination->initialize($config);
$page = ($this->uri->segment(4)) ? $this->uri->segment(4) : 0;
$data['links'] = $this->pagination->create_links();


$data['tees']=$this->model_name->getTeesLike($KW,$limit,$page);
$data['title']='Displaying Tees data';
$data['header']='Tees List';

$this->load->view('tee_res', $data);

模型

public function getNumTeesfromQ($KW)
{
    $query = $this->db->query("SELECT * FROM title WHERE table_field='$KW'");
    $result = $query->result_array();
    $count = count($result);
    return $count;
}

public function getTeesLike($KW,$limit,$page)
{
    $query = $this->db->query("SELECT * FROM title WHERE table_field='$KW' LIMIT $page, $limit");
    $result = $query->result_array();
    return $result;
}

视图中

echo
所有数据均使用
foreach

然后在页面底部使用

<?php echo $links; ?>
这将显示您的分页

© www.soinside.com 2019 - 2024. All rights reserved.