Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Autocomplete + ZendX + Jquery
MitS
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


Witam serdecznie,

mam mały problem z autocompleterem z jquery ui w połaczeniu z ZF.
Mianowicie mając taki przykład:

  1. <?php
  2.  
  3. $cities = array('Warszawa', 'Władysławowo', 'Wawka', 'Olsztyn', 'Olsze', 'Olkusz');
  4. echo $this->autocomplete("ac1", "", array('cities' => $$cities));
  5.  
  6. ?>


i wynikiem jest podpowiadanie danych miast w zalezności od wpisanej frazy.
To działa w jak najlepszym porzadku, lecz potrzeba mi więcej danych w podpowiadaniu np. mając dwie tablice:

  1. <?php
  2.  
  3. $regions = array(1 => 'mazowieckie', 3 => 'warmińsko-mazurskie', 8 => 'Pomorskie');
  4. $cities = array(1234 => 'Warszawa', 6107 => 'Władysławowo', 2943 => 'Wawka', 214 => 'Olsztyn', 22445 => 'Olsze', 8263 => 'Olkusz');
  5.  
  6. ?>


chciałbym by podpowiedz wyglądała w taki sposób:

Kod
warszawa, mazowieckie


zaś wybranie danej pozycji powoduje callback klucza z powyzszych tablic zarówno dla miast jak i województw, czyli w tym wypadku było by zwracane:
1234 oraz 1.

Ma ktoś propozycje wykonania tego?
Korzystam z Zend 1.10.7 komponentu ZendX i najnowszego Jquery (wraz z UI)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
smentek
post
Post #2





Grupa: Zarejestrowani
Postów: 130
Pomógł: 11
Dołączył: 7.04.2003

Ostrzeżenie: (10%)
X----


Musisz powiązać miasta z odpowiednimi województwami. Coś jak:

  1. //$x to miasto zwrócone z mechaznimu autocomplete
  2. $locationFromAutocomplete = $x;
  3.  
  4. $locationToVoivodship = array( 'Warszawa' => 'mazowieckie' , 'Gdańsk' => 'pomorskie' ) );
  5.  
  6. if( isset( $locationToVoivodship[$locationFromAutocomplete] ) )
  7. {
  8. $output = "{$locationFromAutocomplete} {$locationToVoivodship[$locationFromAutocomplete]}";
  9. }


--------------------
.:SMENTEK:.
Go to the top of the page
+Quote Post
MitS
post
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 5
Dołączył: 8.02.2005
Skąd: Olsztyn / Zatorze

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


tzn samo "wyplucie" "miasto, województwo" nie nalezy do trudniejszych rzeczy, sbardziej mnie interesuje przekazanie takich tablic do autocompleter'a i zwrócenie wartości w jakimś callbacku po zaznaczeniu pozycji.
Go to the top of the page
+Quote Post
smentek
post
Post #4





Grupa: Zarejestrowani
Postów: 130
Pomógł: 11
Dołączył: 7.04.2003

Ostrzeżenie: (10%)
X----


Cytat
tzn samo "wyplucie" "miasto, województwo" nie nalezy do trudniejszych rzeczy, bardziej mnie interesuje przekazanie takich tablic do autocompleter'a i zwrócenie wartości w jakimś callbacku po zaznaczeniu pozycji.


Wyplucie "miasto, województwo" to wszystko co tak naprawdę musisz zrobić. A w każdym razie na 90% tak jest. Do czego mialy by sluzyc identyfikatory o których piszesz:

Cytat
zaś wybranie danej pozycji powoduje callback klucza z powyzszych tablic zarówno dla miast jak i województw, czyli w tym wypadku było by zwracane:
1234 oraz 1.


To co tutaj opisujesz to nie jest już autocomplete ale jakieś kolejne requesty asynchrnoiczne, które jeżeli dobrze rozumiem miały by następować po tym jak już zaznaczysz odpowiednią pozycję? To złe podejście. Po co 2 razy odpytywać po to samo? Raz po nazwy obiektów np: "Zachodniopomorskie Koszalin" a potem drugi raz po jego identyfikatory np: 123, 10?

Jeżeli faktycznie potrzebujesz i identyfikatorów i nazw to:
1. Request powinien być jeden.
2. Powinien zwracać wszystkie potrzebne dane zakodowane w formacie JSON (lub XML) dla wszystkich zwracanych elementów.
3. Musisz wpiąć się w javascript w miejscu w którym jest odbierany request i zrobić to co potrzebujesz zrobić.

Jeżeli automat z którego korzystasz (nie bawilem sie ajaxem na zend-framework) zwraca z request htmla to musisz go przekonfigurować tak aby zwracał JSON. Jeżeli nie jest to mozliwe to olej to i oprogramuj własne rozwiązanie. Własny skrypt js odpalany jedynie dla odpowiedniego widoku/widoków. Plugin jQuery autocomplete ma wszystko opisane.


--------------------
.:SMENTEK:.
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 Aktualny czas: 20.08.2025 - 12:01