Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Mi-au disparut amigdalitele ?

Exista vreun plan de terorizare p...

Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone
 Monede JO 2024

Suprasolicitare sistem electric

CIV auto import

Mutare in MOZAMBIC - pareri, expe...
 Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...

Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...
 Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...

Kanal D va difuza serialul “...

Upgrade xiaomi mi11
 

[Script] Paginatie conditionata in CodeIgniter

- - - - -
  • Please log in to reply
2 replies to this topic

#1
republicall

republicall

    Senior Member

  • Grup: Senior Members
  • Posts: 2,211
  • Înscris: 26.02.2008
Paginatia conditionata in CodeIgniter se poate face in doua moduri: folosind variabile de sesiune sau construind un url complicat. Eu va prezint a treia metoda folosind persistenta form-ului.

Pe langa paginatia obisnuita se adauga urmatorii pasi:

In controller:
- se asigura persistenta input-ului
$this->form_validation->set_rules('input_name', 'Nume produs: ', 'trim|xss_clean');

- se citeste numarul paginii dintr-un input hidden setat in prealabil pe partea de javascript
$hidden_page_number = ($this->input->post('hidden_page_number')!==FALSE ? $this->input->post('hidden_page_number') : 1);

- se citesc produsele din baza de date pe baza unui calcul numeric; nu se mai foloseste $this->uri->segment(3) pentru calcularea offset-ului
$result = $this->product_database->read_product_all($data, $config['per_page'], (($hidden_page_number-1)*$config['per_page']));

- pe partea de view nu exista schimbari; link-urile se genereaza folosind pagination library

- pe partea de javascript:
- oprim functionalitatea link-ului de la pagini deoarece vrem sa retrimitem formularul; link-ul ar strica deoarece redirectioneaza la un url fara a trimite si input-urile.
e.preventDefault();

-setam in input-ul hidden valoarea paginii care a fost apasata; $(this) este acel <a href...
$('#hidden_page_number').val( $(this).text().toLowerCase());

-modificam url-ul pentru atributul form action pentru ca pagina sa se modifice ulterior
  var xxx = $('#hidden_page_number').val();
$('#search_result_form').attr("action", "http://localhost/.../" + ((xxx-1)*3));

- si important trimitem formularul simuland apasarea butonului submit si nu cu form.submit();
$("#submit_button").trigger("click");



In acest fel se ocolesc doua probleme: incarcarea url-ului si complicarea codului pe partea de pagination library si evitarea utilizarii variabilelor de sesiune cu algoritmul aferent. Probabil am intrat in altele Posted Image dar poate ca unii vor prefera varianta asta.

Edited by republicall, 02 June 2015 - 23:57.


#2
republicall

republicall

    Senior Member

  • Grup: Senior Members
  • Posts: 2,211
  • Înscris: 26.02.2008
Se pare ca de fapt nici nu trebuiesc atatea modificari, ieri fiind tarziu n-am observat ca aveam link-ul paginii la indemana. Ajunge doar un simplu js:
$(document).on("click", "#pagination>a", function(e){
  e.preventDefault();
  $('#search_result_form').attr("action", $(this).attr("href"));
  $("#submit_button").trigger("click");
});


Deci pe partea de controller si view nu exista nimic in plus fata de varianta simpla de pagination.

#3
republicall

republicall

    Senior Member

  • Grup: Senior Members
  • Posts: 2,211
  • Înscris: 26.02.2008
Cine se pricepe la CI? E ok ce am facut?

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate