Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CodeIgniter]Przetrzymanie danych.., .. Wyszukiwarka.
kajzur
post 28.08.2009, 21:14:19
Post #1





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Wiem, troszkę dziwny tytuł winksmiley.jpg Robie w CI wyszukiwarkę, wraz z paginacją. No i mam problem, jak przedłużyć "życie" danych wpisawny w polu szukaj..

POST - Ginie po przejściu na nast stronę.

GET -
Cytat
GET data is simply disallowed by CodeIgniter since the system utilizes URI segments rather than traditional URL query strings (unless you have the query string option enabled in your config file). The global GET array is unset by the Input class during system initialization.


Po ustawieniu

Cytat
$config['enable_query_strings'] = true;


Mam dostęp do GET, ale wtedy po przejściu na nast. stronę, paginacja nadpisuje szukaną wartość, numerem strony.. Więc też nie działa.. ;/

Sesja - Po przejściu na następną stronę, nadpisuje zmienną, i zamiast szukać frazy, szuka pustego pola.. ;/

Any idea? ;>


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
phpion
post 29.08.2009, 09:51:58
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Wysyłaj formularz metodą GET.
Go to the top of the page
+Quote Post
kajzur
post 29.08.2009, 10:44:58
Post #3





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Nie mam dostępu do GET! Napisałem przecież.. A jesli zmienie w configu, to mam dostęp, ale paginacja wariuje.. i URL'e się psują.. ;/ Napisałem to zresztą w 1 poście, jakieś inne pomysły?


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
magra
post 29.08.2009, 11:25:45
Post #4





Grupa: Zarejestrowani
Postów: 34
Pomógł: 8
Dołączył: 5.10.2004

Ostrzeżenie: (0%)
-----


przechwytujasz za pomocą javascriptu wyszukiwaną frazę i tworzysz url, np:
http://www.moj-zajefajny-serwis.pl/search/wyszukiwana-fraza
w metodzie kontrolera masz dwa parametry :
  1. function search($searched, $page = 1)

no i paginacja powinna działać bez problemu smile.gif


--------------------
www.internetum.pl
Go to the top of the page
+Quote Post
kajzur
post 29.08.2009, 13:18:37
Post #5





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Cytat
przechwytujasz za pomocą javascriptu wyszukiwaną frazę i tworzysz url
Jak to zrobić?


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
f1xer
post 29.08.2009, 13:42:40
Post #6





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----


Cytat(magra @ 29.08.2009, 12:25:45 ) *
przechwytujasz za pomocą javascriptu wyszukiwaną frazę i tworzysz url, np:
http://www.moj-zajefajny-serwis.pl/search/wyszukiwana-fraza
w metodzie kontrolera masz dwa parametry :
[PHP] pobierz, plaintext
  1. function search($searched, $page = 1)
[PHP] pobierz, plaintext
no i paginacja powinna działać bez problemu smile.gif


mały OT:

chyba nie chcesz uzależniać działania tak ważnego elementu strony jak wyszukiwarka od tego czy user ma włączony Java Script?
Niestety z problemem nie pomogę bo nie znam tego framework'a ale proponowałbym zawrócić ze ścieżki Java Script.


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
Go to the top of the page
+Quote Post
kajzur
post 29.08.2009, 13:54:23
Post #7





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Cytat
chyba nie chcesz uzależniać działania tak ważnego elementu strony jak wyszukiwarka od tego czy user ma włączony Java Script?
Niestety z problemem nie pomogę bo nie znam tego framework'a ale proponowałbym zawrócić ze ścieżki Java Script.


Masz rację.. To jak to zrobić? Załączam link do dokumentacji klasy paginacji - http://codeigniter.com/user_guide/libraries/pagination.html

I mój widok:
  1. case 'search':
  2.  
  3. $attributes = array('id' => 'szukaj', 'method' => 'get');
  4. echo form_open('cytaty/search/', $attributes);
  5. echo '<p align="center">Wpisz szukaną frazę: <br>
  6. <input type="hidden" name="search" value = "yes" />
  7. <input type="text" name="phrase" />
  8.  
  9.  
  10.  
  11. <br>
  12. ';
  13.  
  14. echo '<input type="submit" value="Szukaj" />';
  15.  
  16. echo '</p>
  17.  
  18. <br><br>';
  19.  
  20.  
  21. ?>
  22. <?
  23. if(isset($dane))
  24. foreach($dane as $dana)
  25. {
  26.  
  27. echo 'Dodał: '.anchor('cytaty/profil/'.url_title($dana->dodal).'',$dana->dodal ).', dnia '.$dana->data.'; Autor: '.$imie[0]->nazwa.' ['.$dana->sklad.'] - '.$dana->kawalek.'<br><p> <br><b>'.$dana->tresc.'</b></p><br>';
  28.  
  29. }
  30.  
  31. ?>
  32.  
  33.  
  34.  
  35. <?
  36. echo $this->pagination->create_links();
  37. ?>


i kontroler:

  1. function search()
  2. {
  3.  
  4. $this->load->library('pagination');
  5. $this->load->model('cytat');
  6.  
  7. $tekst['artysci'] = $this->cytat->get_artists();
  8. $tekst['users'] = $this->cytat->get_users();
  9.  
  10.  
  11. if($this->input->get('search') == 'yes')
  12. {
  13. $config['base_url'] = site_url().'/cytaty/search';
  14. $config['total_rows'] = $this->cytat->getSResults_num($this->input->get('phrase'));
  15. $config['per_page'] = '4';
  16. $config['page_query_string'] = TRUE;
  17. $config['uri_segment'] = '3';
  18. $config['full_tag_open'] = '<p align = "center">';
  19. $config['full_tag_close'] = '</p>';
  20. $config['next_link'] = 'Dalej';
  21. $config['prev_link'] = 'Wstecz';
  22. $this->pagination->initialize($config);
  23.  
  24. if(!$this->uri->segment(3))
  25. $lol = 0;
  26. else
  27. $lol = $this->uri->segment(3);
  28.  
  29. $tekst['dane'] = $this->cytat->getSResults($this->input->get('phrase'), $config['per_page'], $lol);
  30. }
  31. $this->load->view('bzdety', $tekst);
  32.  
  33. }
  34.  


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
f1xer
post 29.08.2009, 14:19:05
Post #8





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----


zdaje się podobny problem:

http://codeigniter.com/forums/viewthread/124051/#614158

i rozwiązanie oparte na cudzej bibliotece być może się przyda.


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
Go to the top of the page
+Quote Post
kajzur
post 29.08.2009, 16:30:45
Post #9





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Cytat
Ya I agree with devbro on how to do it but I would set a flashdata session instead of a regular session then just reset it when they go to the next page. that way if they leave the search pages they don’t have any unnecessary session data.

Atleast that how I do it.

Identycznie u mnie reaguje na sesje...

Niby problem rozwiązałem:

  1.  
  2. function search()
  3. {
  4.  
  5. $this->load->library('pagination');
  6. $this->load->model('cytat');
  7.  
  8.  
  9.  
  10. $tekst['artysci'] = $this->cytat->get_artists();
  11. $tekst['users'] = $this->cytat->get_users();
  12.  
  13.  
  14. if($this->input->post('search') == 'yes')
  15. {
  16.  
  17. $newsite = site_url().$this->uri->uri_string().'/'.$this->input->post('phrase');
  18. redirect ($newsite, 'location');
  19. }
  20. if($this->uri->segment(3) != '')
  21. {
  22. $config['base_url'] = site_url().'/cytaty/search/'.$this->uri->segment(3).'';
  23. $config['total_rows'] = $this->cytat->getSResults_num($this->uri->segment(3));
  24. $config['per_page'] = '4';
  25. $config['uri_segment'] = '4';
  26. $config['full_tag_open'] = '<p align = "center">';
  27. $config['full_tag_close'] = '</p>';
  28. $config['next_link'] = 'Dalej';
  29. $config['prev_link'] = 'Wstecz';
  30. $this->pagination->initialize($config);
  31.  
  32. if(!$this->uri->segment(4))
  33. $lol = 0;
  34. else
  35. $lol = $this->uri->segment(4);
  36.  
  37. $tekst['dane'] = $this->cytat->getSResults($this->uri->segment(3), $config['per_page'], $lol);
  38. }
  39. $this->load->view('bzdety', $tekst);
  40.  
  41. }

Co zrobiłem? Ano, odebrałem, to po user wpisał w pole, stworzyłem z tą frazą, nowy url, i przekierowałem na niego..

Widzicie jakieś zagrożenie dla takiego rozwiązania?

1. Problem z polskimi znakami - próbowałem przez base64 lecz nie działało - nie upoważnione znaki - po przeszukaniu Internetu, pogrzebałem trochę w uri.php i teraz mam linki w postaci np http://localhost/~cyt/index.php/cytaty/search/miłość - co ciekawe, polskie znaki w adresie działają winksmiley.jpg

Jakie inne zagrożenia widzicie?


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 03:33