Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] zależne selecty z zawartością generowaną, dynamicznie :)
kociou1
post 1.03.2006, 00:23:25
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 13.02.2004
Skąd: warszawa

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


Witam.

Uzywam klasy adwajax i staram sie przy jej pomocy stworzyć trzy zależna od siebie pola select z nazwami województw/powiatów/gmin, kod poniżej:

  1. <table border="0" cellspacing="0" cellpadding="0">
  2. <tr>
  3. <td>Województwo:&nbsp;</td>
  4. <td>
  5. <select name="wojewodztwo" onchange="pobierzPowiaty()">
  6. <option selected="selected">------------</option>
  7. {foreach from=$wojewodztwa key=klucz item=woj}
  8. <option value="{$key}">{$woj}</option>
  9. {/foreach}
  10. </select>
  11. </td>
  12. </tr>
  13. <tr>
  14. <td>Powiat:&nbsp;</td>
  15. <td>
  16. <select name="powiat" onchange="pobierzGminy()">
  17. <option selected="selected">------------</option>
  18. <option value="{$key}">{$pow}</option>
  19. </select>
  20. </td>
  21. </tr>
  22. <tr>
  23. <td>Gmina:&nbsp;</td>
  24. <td>
  25. <select name="gmina">
  26. <option selected="selected">------------</option>
  27. <option value="{$key}">{$gm}</option>
  28. </select>
  29. </td>
  30. </tr></table>

Jak to ma działać? Otóz po wybraniu województwa wysyłane miałoby być zapytanie do pliku na serwerze który w odpowiedzi generowałby listę powiatów w tym województwie w formacie xml (przykładoa lista poniżej)
  1. ?xml version="1.0" encoding="iso-8859-2"?>
  2. <powiaty>
  3. <powiat>
  4. <id>1</id>
  5. <woj>2</woj>
  6. <nazwa>bolesławiecki</nazwa>
  7. </powiat>
  8. <powiat>
  9. <id>2</id>
  10. <woj>2</woj>
  11. <nazwa>dzierżoniowski</nazwa>
  12. </powiat>
  13. <powiat>
  14. <id>3</id>
  15. <woj>2</woj>
  16. <nazwa>głogowski</nazwa>
  17. </powiat>
  18. <powiat>
  19. <id>4</id>
  20. <woj>2</woj>
  21. <nazwa>górowski</nazwa>
  22. </powiat>
  23.  
  24. (...)
  25.  
  26. <id>64</id>
  27. <woj>2</woj>
  28. <nazwa>m. Wrocław</nazwa>
  29. </powiat>
  30. </powiaty>


i tu sie zaczynają schody bo nie wiem jak napisać funkcję w javascript żeby z tych danych stworzyła mi listę opcji w select "powiaty" (nawet nazwałem ja juz "pobierzPowiaty()" smile.gif póki co na więcej mnie nie stać - za cienki jestem w js :/

liczę na wskazówki i sugestie lub linki do jakichś tutków smile.gif
propozycją rozwiązania też nie pogardzę smile.gif

PS.: Do zarządu php.pl - a może by tak założyć w dziale "po stronie przeglądarki" nowe podforum traktujące o ajaxie??

Ten post edytował nospor 27.03.2006, 20:06:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
TomASS
post 1.03.2006, 08:23:46
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Przykład jak wyciągnąć dane z XML i umieścić je odpowiednio na stronie jest opisane w tym samym miejscu, w którym znalazłeś advAJAX - jest tam przykład który bardzo rozjaśni Ci sprawę.

Cytat
PS.: Do zarządu php.pl - a może by tak założyć w dziale "po stronie przeglądarki" nowe podforum traktujące o ajaxie??

Mogę się podpiąć pod tą petycją smile.gif


--------------------
Go to the top of the page
+Quote Post
kociou1
post 1.03.2006, 13:35:22
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 13.02.2004
Skąd: warszawa

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


Jak sciagnac dane z xml to zrozumiałem, jednak nie wiem co z nimi dalej robic, jak spowodowac zeby zostaly umieszczone jako opcje wskazanego selecta :/
Jak mowilem js prawie wogole nie znam (aczkolwiek czytam, czytam i jeszczeraz czytam...)
Go to the top of the page
+Quote Post
przczp
post 17.09.2007, 16:38:34
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 16.09.2007

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


moze to ci pomoze, fragment mojego kodu:

CODE
var znacznikSelectTitle = document.createElement("select");

znacznikSelectTitle.setAttribute("name","tutorTitle"+id);

znacznikSelectTitle.setAttribute("id","tutorTitle"+id);

znacznikSelectTitle.className = "titleSelectBox";



var labelZnacznikSelectTitle = document.createElement("label");

labelZnacznikSelectTitle.setAttribute("for","tutorTitle"+id);

labelZnacznikSelectTitle.innerHTML = "Title: ";



var znacznikSelectTitleOption = new Array();

znacznikSelectTitleOption[0] = "mgr";

znacznikSelectTitleOption[1] = "mgr inż.";

znacznikSelectTitleOption[2] = "dr";

znacznikSelectTitleOption[3] = "dr hab.";

znacznikSelectTitleOption[4] = "prof.";

for (i=0;i<5;i++){

var newOption = document.createElement("option");

newOption.innerHTML = znacznikSelectTitleOption[i];

znacznikSelectTitle.appendChild(newOption);



}

titleDiv.appendChild(labelZnacznikSelectTitle);

titleDiv.appendChild(znacznikSelectTitle);


pozdrawiam
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: 5.07.2025 - 00:18