CI: pagination

Programovacie jazyky, rady, poradňa...
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

CI: pagination

Príspevok od používateľa mnichovcan »

Ospravedlňujem sa za ďalší post ale už neviem ako mám stým pohnúť.

mám niečo takéto

Kód: Vybrať všetko

<?php echo anchor('poradie','poradie','title="" ');  vypíše to link s odkazom na poradie 

v routes.php mám 

$route['poradie/(:num)'] = 'page/poradie_controler/$1';

a v samotnom poradie_contoler 



function index(){

$this->load->model('poradie_model');

$this->load->library('pagination');

$config['base_url'] = base_url().'poradie' ;
$config['total_rows'] = $this->poradie_model->pocet_riadkov();
$config['per_page'] = 1; 
$config['uri_segment'] = 2;

 

if ( ($data['poradie'] = $this->poradie_model->vypis($config['per_page'],$config['uri_segment'] ))  ) {

$this->pagination->initialize($config);

$this->load->library('table');

$tmpl = array ( 'table_open'  => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' ); $this->table->set_template($tmpl);

$this->load->view('page/poradie_view',$data);

}else{

redirect('home');

}



}

Skúšal som to všelijako meniť tie routes, adresy ale výsledok že sa načíta stránka poradie a po preklikavani v odkazoch sa dostanem na napr 2 stranku s obsahom ktorý na nej má byť (má byt v tabulke ) sa ešte nepodarilo. Dosiahol som som že odkaze sa dali preklikavat no obsah sa nemenil, obsah sa menil no boli tam len 2/3 obsahu , nedalo sa dostat na prvú stránku . Proste išlo to všelijako len nie normálne. Teraz sa aktuálne nečíta uvodna stránka kvôli tým routes lebo tam mám prípady/(:num) ked to zmením ručne na pripady/1 tak ma dá na 2 odkaz v strankovani ale po prepinani sa obsah aj tak nemení.

ešte view

Kód: Vybrať všetko


<?php  $this->load->view('inc/header'); ?>
	
<!--Hlavička Tabulky#############################################-->

<?php $i=1; $this->table->set_heading('#', 'Meno'); foreach ($poradie->result() as $key ) : ?> 

<!--#############################################-->


<!--Obsah Tabulky#############################################-->

<?php $this->table->add_row($i,anchor('user/'.$key->id,$key->meno) ); $i=$i+1; ?>

<!--#############################################-->


<!--Koniec Tabulky#############################################-->

<?php endforeach; echo $this->table->generate(); echo $this->pagination->create_links(); ?>

<!--#############################################-->

<?php $this->load->view('inc/footer'); ?>
a model

Kód: Vybrať všetko

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Poradie_model extends CI_Model {


      public function __construct()
       {
            parent::__construct();
            
       }  

//***********************************************


function vypis($limit,$ofset) {    // Vypiše všetkych user pod bodov

$succes = $this->db->order_by('body desc')
                   ->select('id,meno')
                   ->get('uzivatel',$limit,$ofset);


     if ( $succes->num_rows() > 0 ) { return $succes; } else { return false; }              

} 


function pocet_riadkov(){  // Zisti pocet user kvlo strankovaniu

$succes = $this->db->count_all_results('uzivatel')

return $succes;
}

//***********************************************


}

Aiden
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2213
Registrovaný: 06 apr 2007, 14:28

Re: CI: pagination

Príspevok od používateľa Aiden »

Si si isty, ze sa potrebujes babrat v routes? Neprihodi CI automaticky na koniec poradie?page=2 alebo nieco podobne? Pozri sa na toto. V CI som uz dlhsie nerobil, ale nepamatam si, ze by som niekedy riesil problem s pagination.
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

Re: CI: pagination

Príspevok od používateľa mnichovcan »

Aiden napísal:Si si isty, ze sa potrebujes babrat v routes? Neprihodi CI automaticky na koniec poradie?page=2 alebo nieco podobne? Pozri sa na toto. V CI som uz dlhsie nerobil, ale nepamatam si, ze by som niekedy riesil problem s pagination.
S tým routes sa babrem preto lebo ten controller sa volá poradie_controler a potom by som mal v adrese poradie_controler/metoda/1 ale ja chcem co najkratsiu url a preto mám odkaz poradie a ten pomocou routes presmerujem na na ten controler a jeho metodu. Mám tak skoro všetko aby som v url nemal názov kontrolera. Ale asi to budem musieť prehodnotiť lebo routes.php začínajú mať dost riadkov. Môj routes už vyzerá tekto

Kód: Vybrať všetko


$route['default_controller'] = "index_controler";
$route['404_override'] = '';


$route['login'] = 'Auth/login';
$route['register'] = 'Auth/register';
$route['logout'] = 'Auth/logout';


$route['home'] = 'page_controler/home';
$route['profil/(:any)'] = 'page_controler/private_profil';
$route['user/(:any)'] = 'page_controler/public_profil';
$route['pripady'] = 'page_controler/pripady';
$route['pripad/(:any)'] = 'page/pripad_controler';
$route['poradie/'] = 'page/poradie_controler/index/$1';

//########################################################################xxx
$route['edit_private/(:any)'] = 'page/profil_controler/edit_private';
$route['update'] = 'page/profil_controler/update';
Asi to jedno miesto v url obetujem .
Aiden
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2213
Registrovaný: 06 apr 2007, 14:28

Re: CI: pagination

Príspevok od používateľa Aiden »

Toto som nemyslel tym babranim, skor mi islo o to (:num). Skus tu route nastavit iba takto:

Kód: Vybrať všetko

$route['poradie'] = 'page/poradie_controler/index';
sharky-no
King
King
Používateľov profilový obrázok
Príspevky: 1681
Registrovaný: 31 okt 2006, 19:53

Re: CI: pagination

Príspevok od používateľa sharky-no »

Kód: Vybrať všetko

$config['uri_segment'] = 2;
ked ti to fungovalo tak, ze si tam mal linky, ale obsah sa nemenil, tak chyba bola na 99% v zle nastavenom uri_segment.. treba skusat menit cisla a snad to rozbehnes :)
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

Re: CI: pagination

Príspevok od používateľa mnichovcan »

Nastavil som ten routes tak ako si dal bez toho num .
Teraz ked kliknem v menu na tu polozku tak ma to presmeruje tam kde chcem vidím tabulku aj z linkami strankovacimi . Ale ked kliknem napr na 2 tak hned ma to hodí na 404 page not found.

//autoeditácia príspevku (26 Dec 2013, 23:14)
ešte som skusil dat to num naspet

$route['poradie/(:num)'] = 'page/poradie_controler/index/';

a do menu som dal poradie/0 . Už sa dá prepínať aj obsah ale ked som na 2stranke alebo viac tak sa nedostanem na prvú kvôli tomu že ako prví link je poradie ale ja mám poradie/0 proste tam músí byť nejaké číslo.
Aiden
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2213
Registrovaný: 06 apr 2007, 14:28

Re: CI: pagination

Príspevok od používateľa Aiden »

Tak teda nastav routes takto:

Kód: Vybrať všetko

$route['poradie'] = 'page/poradie_controller/index';
$route['poradie/(:num)'] = 'page/poradie_controller/index/$1';
a $config['uri_segment'] vyskusaj nastavit na 4 pripadne 3
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

Re: CI: pagination

Príspevok od používateľa mnichovcan »

Aiden napísal:Tak teda nastav routes takto:

Kód: Vybrať všetko

$route['poradie'] = 'page/poradie_controller/index';
$route['poradie/(:num)'] = 'page/poradie_controller/index/$1';
a $config['uri_segment'] vyskusaj nastavit na 4 pripadne 3
:D :mrgreen: :smt033 :D :smt059 Konečne ja som to tak skúšal a vtedy to nešlo , no to je jedno konečne . uri segment stačí 2 . Dakujem.
Napísať odpoveď