I have set the pagination to the page. but it doesn't recognize the variable that represent the pagination link from the controller. How can I solve it?
This is View "member_list.php"
<table class="table table-hover table-striped table-bordered">
<tr>
<th class="text-center">ID</th>
<th class="text-center">Name</th>
<th class="text-center">Number</th>
<th class="text-center">Type</th>
<th class="text-center">Unit</th>
<th class="text-center">Date</th>
<th class="text-center">Action</th>
</tr>
<tr>
<td class="text-center"><?php echo $member->ID; ?></td>
<td><?php echo $member->Name; ?></td>
<td><?php echo $member->Letter_Number; ?></td>
<td><?php echo $member->Letter_Type; ?></td>
<td><?php echo $member->Unit; ?></td>
<td><?php echo $member->Date; ?></td>
<tr>
<div class="pagination "><?php echo "<li>". $links."</li>";?></div> // it doesn't defined $links variable
Here is controller "Main.php"
class Main extends CI_Controller {
public function index ()
{
redirect('member_list');
}
public function pagination1() {
$this->load->model('members');
$this->load->library('pagination');
$config = array();
$config["base_url"] = base_url()."main/pagination1";
$config["num_links"]= $this->members->record_count();
$config["per_page"] = 5;
$config["total_rows"] = $this->members->record_count(); //method in controller
$config["use_page_numbers"] = TRUE;
$config['cur_tag_open'] = ' <a class="current">';
$config['cur_tag_close'] = '</a>';
$config['next_link'] = 'Next';
$config['prev_link'] = 'Previous';
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data["members"] = $this->members->fetch_data1($config["per_page"],$page);
$pa_links = $this->pagination->create_links();
$data["links"] = $this->pagination->create_links(); //explode(' ',$pa_links );
$data["u_connect"] = $user_connect;
$this->display('members_list',$data);
}
Here is model "members.php"
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Members extends CI_Model {
public function record_count() {
return $this->db->count_all("in_list");
}
public function fetch_data1($limit, $id) {
$this->db->limit($limit);
$this->db->where('id', $id);
$query = $this->db->get("in_list");
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
}
I will just post one of mine and you can adapt it
public function index()
{
$config['base_url'] = base_url() . '/pages/index/';
$config['total_rows'] = $this->db->count_all_results('posts');
$config['per_page'] = 4;
$config['num_links'] = 4;
$config['uri_segment'] = 3;
$config['use_page_numbers'] = TRUE;
$config['full_tag_open'] = "<div class='pagination'>";
$config['full_tag_close'] = "</div>";
$config['first_link'] = 'First';
$config['last_link'] = 'Last';
$this->pagination->initialize($config);
$parent = "main";
$this->db->select("title, content, date, last_date, slug")->where('parent', $parent)->where('status', 'publish')->order_by("id", "asc");
$query = $this->db->get('posts', $config['per_page'],$this->uri->segment(3));
if($query->result()){
$data["mainContent"] = $query->result();
}
$data['title'] = "title";
$data['main_content'] = 'pages/prime';
$this->load->view('pages/includes/template', $data);
}
You are using a model, but its little different than mine that doesnt use a model.
In your view, this is all you need AFTER your foreach
<?php echo $this->pagination->create_links();?>
try this
<p><?php echo $links;?></p>
insted of this line <div class="pagination "><?php echo "<li>". $links."</li>";?></div>
you can also set this configaration in your function
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['prev_link'] = '«';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '»';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
Related
Currently I am calling a table of publications and add a page with php, when going through the data with a foreach, I have noticed that I am missing 3 data, for example it brings me the ID 1 but hey it jumps to ID 5 without showing the ID's [ 2,3,4]
In the previous image it is shown what I commented previously, it does not show all the fields of the table.
the data model i am using is the following:
public function list( $uuid = null, $usuario_uuid = null, $estado_id = null, $pagina = 0)
{
$this->db->select('publicacion.*,
concat(usuario.nombre, " ", usuario.paterno) as "usuario",
COALESCE(renta.nombre, "No definido") as "renta",
COALESCE(jornada.nombre, "No definido") as "jornada",
COALESCE(comuna.nombre, "No definido") as "comuna",
COALESCE(profesion.nombre, "No definido") as "profesion",
rango_etario.desde, rango_etario.hasta,
renta.desde as renta_desde, renta.hasta as renta_hasta,
');
$this->db->join('usuario', 'usuario.uuid = publicacion.usuario_uuid');
$this->db->join('renta', 'renta.id = publicacion.renta_id', 'left');
$this->db->join('jornada', 'jornada.id = publicacion.jornada_id', 'left');
$this->db->join('comuna', 'comuna.id = publicacion.comuna_id', 'left');
$this->db->join('profesion', 'profesion.id = publicacion.profesion_id', 'left');
$this->db->join('rango_etario', 'rango_etario.id = publicacion.rango_etario_id', 'left');
if ($uuid != null) {
$this->db->where('publicacion.uuid', $uuid);
return $this->db->get('publicacion',REGISTROS_PAGINA, $pagina)->row_array();
}
if ($usuario_uuid != null) {
$this->db->where('publicacion.usuario_uuid', $usuario_uuid);
}
if ($estado_id != null) {
$this->db->where('publicacion.estado_publicacion_id', $estado_id);
}
return $this->db->get('publicacion')->result_array();
}
function total($usuario_uuid = null, $estado = null)
{
if ($usuario_uuid != null) {
$this->db->where('publicacion.usuario_uuid', $usuario_uuid);
}
if ($estado != null) {
$this->db->where('publicacion.estado_publicacion_id', $estado);
}else{
$this->db->where_in('publicacion.estado_publicacion_id', [1,2]);
}
return $this->db->get('publicacion')->num_rows();
}
my controller is the following:
function publicaciones($offset = 0)
{
$this->load->model('Modelo_publicacion');
$this->load->model('Modelo_usuario');
$this->load->library('pagination');
$config['base_url'] = base_url("Administracion/publicaciones");
$config['total_rows'] = $this->Modelo_publicacion->total();
$config['per_page'] = REGISTROS_PAGINA;
$config['uri_segment'] = 3;
$config['num_links'] = 5;
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['attributes'] = ['class' => 'page-link'];
$config['first_link'] = false;
$config['last_link'] = false;
$config['first_tag_open'] = '<li class="page-item">';
$config['first_tag_close'] = '</li>';
$config['prev_link'] = '«';
$config['prev_tag_open'] = '<li class="page-item">';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '»';
$config['next_tag_open'] = '<li class="page-item">';
$config['next_tag_close'] = '</li>';
$config['last_tag_open'] = '<li class="page-item">';
$config['last_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="page-item active"><a href="#" class="page-link">';
$config['cur_tag_close'] = '<span class="sr-only">(current)</span></a></li>';
$config['num_tag_open'] = '<li class="page-item">';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$data["paginacion"] = $this->pagination->create_links();
$data["publicaciones"] = $this->Modelo_publicacion->list(null, null, null, $offset);
$this->load->view('admin/publicaciones/list_publicaciones', $data);
}
and finally my html code section from where I call the data:
<div class="row">
<div class="col-10 offset-1 table-responsive pt-3">
<table class="table table-striped table-bordered ">
<thead class="thead-dark bg-secondary">
<th>#</th>
<th>Nombre</th>
<th>Tipo Empleo</th>
<th>Comuna</th>
<th>Jornada</th>
<th>Renta ofrecida</th>
<th>Fecha publicación</th>
<th>Estado</th>
</thead>
<tbody>
<?php sort($publicaciones);
foreach ($publicaciones as $p) { ?>
<tr>
<td><?= $p["id"] ?></td>
<td><?= $p["usuario"] ?></td>
<?php if($p["nombre"] != null){ ?>
<td><?= $p["nombre"] ?></td>
<?php } else { ?>
<td>No definido</td>
<?php } ?>
<td><?= $p["comuna"] ?></td>
<td> <?= $p["jornada"] ?> </td>
<td><?= $p["renta_id"] == "-1" ? $p["otra_remuneracion"] : $p["renta"] ?></td>
<td> <?= $p["fecha_creacion"] ?> </td>
<td> <?= $p["estado_publicacion_id"] ?> </td>
</tr>
<?php } ?>
</tbody>
</table>
I've changed the model and controller data, but I'm still missing data. Also look for similar questions but none have an answer that has helped me solve this problem.
i want to be able to access this variable on controller that i had make before
this is my code in my view
<tbody>
<?php foreach ($data->result() as $row):?>
<tr>
<td><?php echo $row->nama; ?></td>
<td><?php echo $row->email; ?></td>
<td><?php echo $row->username; ?></td>
<td><?php echo $row->password; ?></td>
<td>
Edit |
DELETE |
</td>
</tr>
<?php endforeach; ?>
</tbody>
i put some method that contain that variable on controller name Login, but i set my default controller as News. And i want to access that variable from Login Controller.
and this is my Login Controller
public function index()
{
$this->$data['login'] = $this->Login_Model->get_news();
$this->$data['title']= 'Data Pendaftaran';
// konfigurasi pagination//
$config['base_url'] = site_url('Login/index');
$config['total_rows'] = $this->db->count_all('anggota');
$config['per_page'] =4;
$config["uri_segment"] =3;
$choice = $config["total_rows"]/ $config["per_page"];
$config["num_links"] =floor($choice);
// style pagination untuk bootstrap v4//
$config['first_link'] = 'First';
$config['last_link'] = 'Last';
$config['next_link'] = 'Next';
$config['prev_link'] = 'Prev';
$config['full_tag_open'] = '<div class="pagging text-center"><nav><ul class = "pagination justify-content-center">';
$config['full_tag_close'] = '</ul></nav></div>';
$config['num_tag_open'] ='<li class="page-item"><span class ="page-link">';
$config['num_tag_close'] ='</span></li>';
$config['cur_tag_open'] ='<li class="page-item active"><span class="page-link">';
$config['cur_tag_close'] ='<span class="sr-only">(current)</span></span></li>';
$config['next_tag_open'] ='<li class="page-item"><span class="page-link">';
$config['next_tagl_close'] ='<span aria-hidden="true">»</span></span></li>';
$config['prev_tag_open'] ='<li class="page-item"><span class="page-link">';
$config['prev_tagl_close'] ='</span>Next</li>';
$config['first_tag_open'] ='<li class="page-item"><span class="page-link">';
$config['first_tagl_close'] = '</span></li>';
$config['last_tag_open'] ='<li class="page-item"><span class="page-link">';
$config['last_tagl_close'] ='</span></li>';
$this->pagination->initialize($config);
$data['page']=($this->uri->segment(3))? $this->uri->segment(3) : 0;
$data['data'] = $this->Login_Model->get_data_list($config["per_page"],$data['page']);
$data['pagination'] = $this->pagination->create_links();
$this->load->view('anggotapendaftaran',$data);
}
im sorry for my bad language
You can do it in the following way:
On Controller, after you all code where you load view:
$data = array();
$data['title'] = 'Data Pendaftaran';
$this->load->view("yourviewname_view", $data);
on View, when you want to get title, you can get it like $data
example:
echo $data; //will give you "Data Pendaftaran"
If it's array, you can access it like:
echo $data['arrayKey'];
or
echo $data['pagination'];
I hope this will help
I have a datatable with pagination and I have just added a search function. At the moment my search results do not have pagination. I have tried to add the configurations from my index to the search function but it hasn't worked. I'm wondering if I'm missing something. I'd appreciate it if someone can take a look at it?
Controller
public function index(){
$config['base_url'] = base_url('/Control/Users');
$config['total_rows'] = $this->UserModel->countUsers();
$config['per_page'] = 30;
$config['uri_segment'] = 3;
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['prev_link'] = '<';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="current"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['first_link'] = '<<';
$config['last_link'] = '>>';
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data['datatable'] = $this->UserModel->getAllUsers($config["per_page"], $page);
$data['links'] = $this->pagination->create_links();
$data['counter'] = $config['total_rows'];
$data['message']='';
$this->load->view('control/controlMenu/navigationLink');
$this->load->view('control/controlUsers/manageUsers',$data);
$this->load->view('control/controlMenu/navigationJquery');
}
public function searchUser(){
$inputsearchterm = $this->input->post('inputsearchterm');
if($inputsearchterm!=""){
$data['datatable'] = $this->UserModel->searchUser($inputsearchterm);
$data['links'] = '';
$data['counter'] = $this->UserModel->countSearchUser($inputsearchterm);
$data['message']='';
$this->load->view('control/controlMenu/navigationLink');
$this->load->view('control/controlUsers/manageUsers',$data);
$this->load->view('control/controlMenu/navigationJquery');
}else{
redirect('Control/Users');
}
}
View
<?php echo form_open_multipart('Control/Users/searchUser','class="inputform"');?>
<div class="form-group">
<label for="inputsearchterm">Search</label>
<input type="text" class="form-control" id="inputsearchterm" name="inputsearchterm" placeholder="Search">
</div>
<button type="submit" class="btn btn-primary">Search</button>
<?php echo form_close(); ?>
<table class="table">
<thead>
<tr>
<td>Name</td>
<td>IC Number</td>
<td>Passport Number</td>
<td>Email</td>
<td>Phone</td>
</tr>
</thead>
<tbody>
<?php
if(!empty($datatable)){
foreach ($datatable as $dataitem):
$id = $dataitem->id;
?>
<tr>
<td class="name"><?php echo $dataitem->firstname." "; ?><?php echo $dataitem->lastname; ?></td>
<td class="icnumber"><?php echo $dataitem->icNumber; ?></td>
<td class="passportnumber"><?php echo $dataitem->passportNumber; ?></td>
<td class="email"><?php echo $dataitem->email; ?></td>
<td class="phone"><?php echo $dataitem->phone; ?></td>
<td><a class="edituser" href="<?php echo base_url();?>Control/UserDetail/<?php echo $id; ?>/<?php echo "true"; ?>"><i class="fa fa-pencil-square-o" aria-hidden="true"></i>Edit</a></td>
<td><a class="deleteuser" href="<?php echo base_url();?>Control/Users/Users/deleteUser/<?php echo $id; ?>"><i class="fa fa-trash" aria-hidden="true"></i>Delete</a></td>
</tr>
<?php
endforeach;
}
?>
</tbody>
</table>
<p><?php echo $this->session->flashdata('Table'); ?></p>
<?php echo $links; ?>
<p><?php echo $this->session->flashdata('Form'); ?></p>
</div>
Model
public function searchUser($userdetail){
$this->db->select('*');
$this->db->from('Users');
$this->db->like('firstname',$userdetail);
$this->db->or_like('lastname',$userdetail);
$this->db->or_like('email',$userdetail);
$this->db->or_like('phone',$userdetail);
$this->db->or_like('icNumber',$userdetail);
$this->db->or_like('passportNumber',$userdetail);
$query = $this->db->get();
if($query->num_rows()>0){
return $query->result();
}else{
return $query->result();
}
}
public function countSearchUser($userdetail){
$this->db->select('*');
$this->db->from('Users');
$this->db->like('firstname',$userdetail);
$this->db->or_like('lastname',$userdetail);
$this->db->or_like('email',$userdetail);
$this->db->or_like('phone',$userdetail);
$this->db->or_like('icNumber',$userdetail);
$this->db->or_like('passportNumber',$userdetail);
$query = $this->db->count_all_results();
if($query>0){
return $query;
}else{
return 0;
}
}
i think you should add pagination library or check your active query in model
i am searching for 2 days now but still no luck. my problem with my CodeIgniter Pagination is i have set my controller to show 1 data per page i have 2 data which means i have the 1,2 pagination. the [1] page is currently showing the correct data, but when i try to click [2] it still shows the data from the [1] page plus the url is page=1.
here is my Controller
class Campaign extends CI_Controller
{
public function __construct() {
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->load->model('campaign_model');
$this->load->database();
$this->load->library('pagination');
}
function index() {
$this->load->view('campaign_view');
}
function submit() {
$this->form_validation->set_rules('campaignName', 'Campaign Name', 'trim|required|is_unique[ch_campaigns.c_campaign_name]');
if($this->form_validation->run() == FALSE) {
echo validation_errors();
} else {
$campaignName = $this->input->post('campaignName');
$data = array (
'c_campaign_name' => $campaignName
);
$this->db->insert('ch_campaigns', $data);
echo "YES";
}
}
public function campaigns() {
$data = array();
//pagination settings
$config['base_url'] = site_url('campaigns');
$config['total_rows'] = $this->db->count_all('ch_campaigns');
$config['per_page'] = "1";
$config["uri_segment"] = 3;
$choice = $config["total_rows"] / $config["per_page"];
$config["num_links"] = floor($choice);
//config for bootstrap pagination class integration
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['first_link'] = false;
$config['last_link'] = false;
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['prev_link'] = '«';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '»';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$data['page'] = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
//call the model function to get the department data
$data['campaignlist'] = $this->campaign_model->get_campaign_list($config["per_page"], $data['page']);
//$data['campaignInfo'] = $this->campaign_model->get_campaign_list();
$data['pagination'] = $this->pagination->create_links();
//load the department_view
//print var_export($data, true);
$this->load->view('campaign_view',$data);
}
}
here is my Model
public function __construct() {
parent::__construct();
}
public function get_campaign_list($limit, $start) {
$this->db->select('*');
$this->db->from('ch_campaigns');
$this->db->limit($limit, $start);
$query = $this->db->get();
if($query->num_rows() > 0 ) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
}
lastly my Views
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Campaign Name</th>
<th>Owner</th>
<th>Status</th>
<th>Start Date</th>
<th>End Date</th>
<th>Total Leads</th>
<th> </th>
</tr>
</thead>
<tbody>
<?php foreach($campaignlist as $list) { ?>
<tr>
<td><?php echo $list->c_campaign_name; ?></td>
<td><?php echo $list->c_customer_name; ?></td>
<td><?php echo $list->c_status; ?></td>
<td><?php echo $list->c_start_date; ?></td>
<td><?php echo $list->c_end_date; ?></td>
<td></td>
<td><span class="fa fa-caret-square-o-down"></span>
<ul class="dropdown-menu">
<li>Edit</li>
<li>Delete</li>
</ul>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="main-container-footer text-center">
<?php echo $pagination; ?>
</div>
This question already has answers here:
pagination does not change page
(3 answers)
Closed 9 years ago.
hi everyone i am having some problems in displaying my pagination for some reason the pagination dose not appear on the page can some one help me out here is my code :
view
<div>
<table border="1">
<tr>
<th>Name</th>
<th>Second Name</th>
<th>Phone</th>
<th>Email</th>
<th>Answer</th>
<th>Comment</th>
</tr>
<?php foreach ($query as $row): ?>
<tr>
<td><?php echo $row->name; ?></td>
<td><?php echo $row->second_name; ?></td>
<td><?php echo $row->phone; ?></td>
<td><?php echo $row->email; ?></td>
<td> <?php echo $row->answerA;?>
<?php echo $row->answerB;?>
<?php echo $row->answerC;?></td>
<td><?php echo $row->comment;?><br></td>
</tr>
<?php endforeach; ?>
</table>
<?php echo $this->pagination->create_links(); ?>
</div>
controller
<?php
class Result_controller extends CI_Controller{
function getall(){
$this->load->model('result_model');
$data['query'] = $this->result_model->result_getall();
// print_r($data['query']); die();
$this->load->library('pagination');
$config['base_url'] = 'http://localhost/Surva/index.php/result_controller/getall';
$config['total_rows'] = $this->db->get('tblanswers')->num_rows();
$config['per_page'] = 1;
$config['num_links'] = 10;
$this->pagination->initialize($config);
$data['records'] = $this->db->get('tblanswers', $config['per_page'], $this->uri->segment(1, 0))->result_array();
$data['pagination'] = $this->pagination->create_links();
$this->load->view('result_view', $data);
}
i used the codeigniter guide and also a tutorial that i found on nettuts any help will be greatly appreciated tnx in advance.
Do like this
$this->load->library('pagination');
$limit = 10;
$total = $this->legend_model->get_legend_count($language_id);
$config['base_url'] = base_url().'legend/index/';
$config['total_rows'] = $total;
$config['per_page'] = $limit;
$config['uri_segment'] = 3;
$config['first_link'] = '<< First';
$config['last_link'] = 'Last >>';
$config['next_link'] = 'Next ' . '>';
$config['prev_link'] = '<' . ' Previous';
$config['num_tag_open'] = '<span class="number">';
$config['num_tag_close'] = '</span>';
$config['cur_tag_open'] = '<span class="current"><a href="#">';
$config['cur_tag_close'] = '</a></span>';
$this->pagination->initialize($config);
$data['offset'] = $offset;
$data['legends'] = $this->legend_model->get_legend($language_id, $limit, $offset);
$this->template->write('title', 'Legend : Manage Legend');
$this->template->write_view('content', 'legend/index', $data);
$this->template->render();