Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] zależne selecty z zawartością generowaną
Forum PHP.pl > Forum > XML, AJAX > AJAX
kociou1
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??
TomASS
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
kociou1
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...)
przczp
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.