Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery][Autocomplete] Połączenie konkretnych miast z województwami
misqs.net
post 11.10.2009, 10:47:20
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


Witam
Korzystam z jQuery plugin: Autocomplete http://bassistance.de/jquery-plugins/jquer...n-autocomplete/

Wpisując w pole miasto ładnie mi uzupełnia miasta ale chciałbym połączyć konkretne miasta z województwami lecz nie mam pojęcia o javie i jQuery więc zwracam się do Was

  1. <form action="....." method="post" id="formularz">
  2. Województwo:<select name="wojewodztwo" title="Wybierz województwo" id="wojewodztwo">
  3. <option>dolnośląskie</option>
  4. <option>kujawsko-pomorskie</option>
  5. <option>lubelskie</option>
  6. <option>lubuskie</option>
  7. <option>łódzkie</option>
  8. <option>małopolskie</option>
  9. <option>mazowieckie</option>
  10. <option>opolskie</option>
  11. <option>podkarpackie</option>
  12. <option>podlaskie</option>
  13. <option>pomorskie</option>
  14. <option>śląskie</option>
  15. <option>świętokrzyskie</option>
  16. <option>warmińsko-mazurskie</option>
  17. <option>wielkopolskie</option>
  18. <option>zachodniopomorskie</option>
  19. Miasto: <input type="text" name="miasto" id="miasto" />
  20. </form>


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $("#miasto").autocomplete(mias);
  3. });
  4. var mias = "Kraków Warszawa Wrocław Poznań itd".split(" ");
[JAVASCRIPT] pobierz, plaintext


Z góry dzięki za odpowiedzi winksmiley.jpg
Go to the top of the page
+Quote Post
vokiel
post 11.10.2009, 11:09:15
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Dokumentację czytałeś?

Zobacz w tej kolejności:
[JAVASCRIPT] pobierz, plaintext
  1. var mias = "Kraków Warszawa Wrocław Poznań itd".split(" ");
  2. $(document).ready(function(){
  3. $("#miasto").autocomplete(mias);
  4. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował vokiel 11.10.2009, 12:39:41


--------------------
Go to the top of the page
+Quote Post
misqs.net
post 11.10.2009, 11:18:45
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


W dokumentacji znalezłem tylko takie coś:
[JAVASCRIPT] pobierz, plaintext
  1. $("#states").autocomplete(url, {
  2. extraParams: {
  3. country: function() { return $("#country").val(); }
  4. }
  5. });
[JAVASCRIPT] pobierz, plaintext

Próbowałem na kilka sposobów ale bez skutków ;(
Go to the top of the page
+Quote Post
nospor
post 11.10.2009, 11:23:20
Post #4





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




$("#country").val(); - przeciez twoj select ma ID "wojewodztwo" a nie "country"


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misqs.net
post 11.10.2009, 11:28:01
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


Wiem, to tylko skopiowałem z manuala aby pokazać co znalazłem:

[JAVASCRIPT] pobierz, plaintext
  1. $("#miasto").autocomplete(url, {
  2. extraParams: {
  3. wojewodztwo: function() { return $("#wojewodztwo").val(); }
  4. }
  5. });
[JAVASCRIPT] pobierz, plaintext

Tak by wyglądało moje? ale jak to połączyć z wcześniejszym?
Go to the top of the page
+Quote Post
vokiel
post 11.10.2009, 12:43:29
Post #6





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


A tak?
[JAVASCRIPT] pobierz, plaintext
  1. var mias = ['Kraków', 'Warszawa', 'Wrocław', 'Poznań'];
  2. $(document).ready(function(){
  3. $("#miasto").autocomplete(mias);
  4. });
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
misqs.net
post 11.10.2009, 12:51:30
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


To podpowiada tak jak i wcześniejsze, ale ja chce połączyć aby gdy wybiorę z listy rozwijanej województwo np małopolskie to aby były podpowiadane tylko miasta z małopolski a gdy wybiorę podkarpackie to tylko z podkarpackiego itd

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $("#miasto").autocomplete(mias, {
  3. extraParams: {
  4. wojewodztwo: function() { return $("#miasto").val(); }
  5. }
  6. });
  7. });
[JAVASCRIPT] pobierz, plaintext


Zrobiłem coś takiego ale nie wiem co dalej ;/
Go to the top of the page
+Quote Post
vokiel
post 11.10.2009, 13:56:02
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


To może tak:
[JAVASCRIPT] pobierz, plaintext
  1. var mias = new Array(
  2. ['Kraków', 'Warszawa', 'Wrocław', 'Poznań'],
  3. ['Gdańsk', 'Gdynia', 'Sopot']
  4. );
  5.  
  6. $(document).ready(function(){
  7. $("#miasto").autocomplete(mias[$("#wojewodztwo").val()]);
  8. });
[JAVASCRIPT] pobierz, plaintext


Teraz tylko select z liczbowymi wartościami dla poszczególnych województw od 0 licząc.

  1. <select name="wojewodztwo" title="Wybierz województwo" id="wojewodztwo">
  2. <option value="0">dolnośląskie</option>
  3. <option value="1">kujawsko-pomorskie</option>
  4. <option value="2">lubelskie</option>
  5. <option value="3">lubuskie</option>
  6. <option value="4">łódzkie</option>
  7. <option value="5">małopolskie</option>
  8. <option value="6">mazowieckie</option>
  9. <option value="7">opolskie</option>
  10. <option value="8">podkarpackie</option>
  11. <option value="9">podlaskie</option>
  12. <option value="10">pomorskie</option>
  13. <option value="11">śląskie</option>
  14. <option value="12">świętokrzyskie</option>
  15. <option value="13">warmińsko-mazurskie</option>
  16. <option value="14">wielkopolskie</option>
  17. <option value="15">zachodniopomorskie</option>


--------------------
Go to the top of the page
+Quote Post
misqs.net
post 11.10.2009, 14:46:31
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


Niestety wyświetla tylko pierwszą tablicę bez względu na województwa
Próbowałem też tak ale nic nie pomogło:
[JAVASCRIPT] pobierz, plaintext
  1. var mias = new Array();
  2. mias[0] = Array('Kraków', 'Warszawa', 'Wrocław', 'Poznań');
  3. mias[1] = Array('Gdańsk', 'Gdynia', 'Sopot');
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
vokiel
post 12.10.2009, 09:25:03
Post #10





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Nie zadziała przekazanie tablicy, bo autocomplete jest wywoływane przy
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){});
[JAVASCRIPT] pobierz, plaintext
, z parametrem, który w tym przypadku jest pierwszym wybranym elementem tablicy.

Aby to ogarnąć należałoby przy każdej zmianie selecta wywoływać od nowa funkcję
[JAVASCRIPT] pobierz, plaintext
  1. $("#miasto").autocomplete(mias[$("#wojewodztwo").val()]);
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
misqs.net
post 12.10.2009, 19:00:42
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


Już prawie jest OK. Mam takie coś:
  1. Województwo:<select name="wojewodztwo" title="Wybierz województwo" id="wojewodztwo" onchange="$('#miasto').autocomplete(mias[$('#wojewodztwo').val()]);" >
  2. <option value="0"></option>
  3. <option value="1">dolnośląskie</option>
  4. <option value="2">kujawsko-pomorskie</option>
  5. <option value="3">lubelskie</option>
  6. <option value="4">lubuskie</option>
  7. <option value="5">łódzkie</option>
  8. <option value="6">małopolskie</option>
  9. <option value="7">mazowieckie</option>
  10. <option value="8">opolskie</option>
  11. <option value="9">podkarpackie</option>
  12. <option value="10">podlaskie</option>
  13. <option value="11">pomorskie</option>
  14. <option value="12">śląskie</option>
  15. <option value="13">świętokrzyskie</option>
  16. <option value="14">warmińsko-mazurskie</option>
  17. <option value="15">wielkopolskie</option>
  18. <option value="16">zachodniopomorskie</option>
  19. </select>
  20. Miasto:</span> <input type="text" name="miasto" id="miasto" />

[JAVASCRIPT] pobierz, plaintext
  1. var mias = new Array(
  2. [''],
  3. ['Kraków', 'Kraków2'],
  4. ['Gdańsk', 'Gdańsk2'],
  5. ['Poznań', 'Poznań2'],
  6. ['Rzeszów', 'Rzeszów2'],
  7. ['Sopot', 'Sopot2'],
  8. ['Bobrowa', 'Bobrowa2'],
  9. ['Debica', 'Debica2'],
  10. ['Wrocław', 'Wrocław2'],
  11. ['Tarnów', 'Tarnów2'],
  12. ['Londyn', 'Londyn2'],
  13. ['Berlin', 'Berlin2'],
  14. ['Madryt', 'Madryt2'],
  15. ['Praga', 'Praga2'],
  16. ['Moskwa', 'Moskwa2'],
  17. ['Mielec', 'Mielec2'],
  18. ['Ełk', 'Ełk2']
  19. );
  20.  
  21. $(document).ready(function(){
  22. $("#miasto").autocomplete(mias[$("#wojewodztwo").val()]);
  23. });
[JAVASCRIPT] pobierz, plaintext


Gdy wybiorę np dolnośląskie to przypisuje mi do niego tylko: 'Kraków', 'Kraków2', ale gdy wybiorę kolejne bez przeładowania strony to do 'Kraków', 'Kraków2', dodaje kolejną tablicę a nie podmienia na np 'Londyn', 'Londyn2', i wtedy w podpowiedziach mam taką tablice: 'Kraków', 'Kraków2', 'Londyn', 'Londyn2'.
Gdy po kolei przejadę wszystkie województwa to będę miał wszystkie miasta w podpowiedziach wszystko do momentu przeładowania strony.
Czy da się zrobić aby podmieniało tablicę a nie dopisywało kolejne miasta?
Go to the top of the page
+Quote Post
vokiel
post 12.10.2009, 20:01:22
Post #12





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Proponowałbym utworzenie skryptu i użycie parametru url, ale jeśli nie chcesz, to możesz spróbować:
[JAVASCRIPT] pobierz, plaintext
  1. /* 1. */
  2. $('#miasto').flushCache();
  3. $('#miasto').autocomplete(mias[$('#wojewodztwo').val()]);
  4.  
  5. /* 2. */
  6. $('#miasto').unautocomplete();
  7. $('#miasto').autocomplete(mias[$('#wojewodztwo').val()]);
  8.  
  9. /* 3. */
  10. $('#miasto').val("").setOptions({data: mias[$('#wojewodztwo').val()});
[JAVASCRIPT] pobierz, plaintext


Albo zależności pomiędzy polami + wykorzystanie danych z adresu, nie lokalnych.

Z podanych najbardziej bym się skłaniał do metody 3.


--------------------
Go to the top of the page
+Quote Post
misqs.net
post 13.10.2009, 15:18:06
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 7.06.2009

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


Działa tak jak planowałem. Nie chcę używać skryptu ponieważ w takim przypadku podpowiedzi wyświetlają się po ok 1s a nie natychmiastowo.
Dzięki za wszelkie podpowiedzi które naprawdę mi pomogły. Myślę że komuś się jeszcze przyda taki bajer na stronkę.
Go to the top of the page
+Quote Post
kaznodzieja
post 29.10.2009, 14:22:09
Post #14





Grupa: Zarejestrowani
Postów: 94
Pomógł: 1
Dołączył: 28.01.2007

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


A możecie powiedzieć jak przekazać wynik z pola formularz do zmiennej w php lub przesłać POST-em?


--------------------
"Nie dyskutuj z debilem, bo najpierw sprowadzi Cię do swego poziomu a potem pokona doświadczeniem"

http://vlaho.pl
http://foto.vlaho.pl
Go to the top of the page
+Quote Post
vokiel
post 29.10.2009, 15:11:36
Post #15





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Ajax - wysłanie zapytania do skryptu php
$.post
Pobranie wartości z pola formularza od zadanym id
[JAVASCRIPT] pobierz, plaintext
  1. $('#id_pola').val();
[JAVASCRIPT] pobierz, plaintext


--------------------
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: 30.04.2025 - 05:29