Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozbudowa istniejącego skryptu - jQuery
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
parzol
Demo: parzol.ovh.org/

Kod:

  1.  
  2. <script language="javascript" src="jquery-1.3.2.min.js"></script>
  3. <script language="javascript">
  4. function makeSublist(parent,child,isSubselectOptional,childVal)
  5. {
  6. $("body").append("<select style='display:none;' id='"+parent+child+"'></select>");
  7. $('#'+parent+child).html($("#"+child+" option"));
  8.  
  9. var parentValue = $('#'+parent).attr('value');
  10. $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
  11.  
  12. childVal = (typeof childVal == "undefined")? "" : childVal ;
  13. $("#"+child).val(childVal).attr('selected','selected');
  14.  
  15. $('#'+parent).change(function(){
  16. var parentValue = $('#'+parent).attr('value');
  17. $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
  18. if(isSubselectOptional) $('#'+child).prepend("<option value='none' selected='selected'> -- Select -- </option>");
  19. $('#'+child).trigger("change");
  20. $('#'+child).focus();
  21. });
  22. }
  23.  
  24. $(document).ready(function()
  25. {
  26. makeSublist('child','grandsun', false, '');
  27. makeSublist('parent','child', false, '');
  28. });
  29.  
  30. </head>
  31.  
  32.  
  33.  
  34. <select id="parent">
  35. <option value="0">Kraj</option>
  36. <option value="1">Włochy</option>
  37. <option value="2">Francja</option>
  38.  
  39. <br /><br />
  40.  
  41. <select id="child">
  42. <option class="sub_0" value="0">Region</option>
  43. <option class="sub_1" value="1">Asyż</option>
  44. <option class="sub_1" value="2">Toskania</option>
  45. <option class="sub_1" value="3">Umbria</option>
  46. <option class="sub_2" value="4">Prowansja</option>
  47. <option class="sub_2" value="5">Paryż</option>
  48.  
  49. <br /><br />
  50.  
  51. <select id="grandsun">
  52. <option class="sub_0" value="0">Miasto</option>
  53. <option class="sub_1" value="1">Asyżowe miasto 1</option>
  54. <option class="sub_1" value="2">Asyżowe miasto 2</option>
  55. <option class="sub_1" value="3">Asyżowe miasto 3</option>
  56. <option class="sub_2" value="4">Toskania miasto 1</option>
  57. <option class="sub_2" value="5">Toskania miasto 2</option>
  58. <option class="sub_3" value="6">Umbria 1</option>
  59. <option class="sub_3" value="7">Umbria 2</option>
  60. <option class="sub_4" value="8">Prowansja 1</option>
  61. <option class="sub_4" value="9">Prowansja 2</option>
  62. <option class="sub_5" value="10">Paryż 1</option>
  63.  
  64. </form>
  65.  
  66. </body>
  67.  
  68. </html>
  69.  


Jak zrobić, aby pola wyboru Region i Miasto zawierały wszystkie dostępne wartości jeśli nie ma wskazanych konkretnych wartości rodzica? Chcę, aby na starcie wszystkie pola miały pełne opcje, po wybraniu np Kraju były do wyboru jedynie odpowiednie dla niego Region i Miasta. Tak samo gdy ktoś wybierze jedynie Region to pole Miasto ma zawierać jedynie przypisane dla niego wartości. Taki kaskadowy system. Mam nadzieję, że jest jasne co chcę uzyskać.

Z góry dzięki za wszelką pomoc.
vokiel
A bez js jak jest? Może akcje makeSublist wywołuj po onchange dla select
parzol
Wtedy wszystko się sypie a po dłuższej zabawie nawet wywala mi przeglądarkę (IE8)! Moim zdaniem wystarczy jedynie zmiana w kodzie tylko nie wiem za bardzo jak to ugryźć sadsmiley02.gif
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.