![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałbym wykorzystać w swoim serwisie powiązane pola wyboru, które opisano : http://php.rk.edu.pl/w/p/powizane-pola-sel...zystujce-ajaxa/ Wykorzystałem ostatni przykład wykorzystujący odczyt z bazy danych czyli: index.php
oraz getCities.php:
Wszystko po przystosowaniu mojej bazy działa pięknie, tylko moje potrzeby są troszeczke większe, a mianowicie uzależnienie kilku pól. Potrzebuje wybór kraju, na jego podstawie wybór województwa, na jego podstawie wybór powiatu, dalej gminy, dalej miasta itd. Zrobiłem powiązanie 1 pola z 2 i drugiego z 3 tak na próbe, czyli kraj-województwo-powiat. Działa dobrze, tylko jest mała wiewygoda. Gdy wybiorę w kolejności kraj-województwo-powiat (chodzi o polskę) wszystko się załaduje i ok ale jak po takim wybraniu chcę zmienić kraj, to 2 pole zachowuje się poprawnie, natomiast w trzecim nadal widnieją poprzednio wprowadzone powiaty (polskie). Jak ten problem rozwiązać, aby wszystkie pola po wyborze i modyfikacji zachowywały sie poprawnie. Kolejnym innym moim zapytaniem dotyczącym tego samego wątku jest wczytywanie całego pola wyboru, czyli na stronie widnieje wybór krajów - wybieram powiedzmy Polskę i po wybraniu wczytuje się nowa komórka, a mianowicie pole wyboru województwa i po jego wybraniu pojawia się nowa komórka z polem wyboru powiatu itd. Pamiętając o tym, co juz opisałem wyżej, że jak zmienię kraj komórki się odpowiednio zachowują, czyli przy tym rozwiązaniu znikają. Prościej nie udało mi się opisać. Z góry dziekuję za odpowiedzi. Ten post edytował nandrzejn 20.06.2007, 10:31:26 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 2 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Z kazda zmiana kraju musisz resetowac inne selecty. (removeChild) - najlepiej diva w ktorym sie dany select pojawia.
Kod function reset_obj(obj) { if(obj!= null && obj.hasChildNodes()) { for(var i=0; i <obj.childNodes.length;i++) obj.removeChild(obj.firstChild); } } Tu kod tworzący - zwróc uwage ze przy tworzeniu jest najpierw reset Kod function create_sel(xml_doc,sel_dest,sel_id) { form_dest = document.getElementById("jakis_div"); //alert(form_dest.childNodes.length +"el:"+form_dest.elements.length); //if(form_dest.childNodes[1]) //alert(form_dest.childNodes[1]); var data_note; if(xml_doc.hasChildNodes()) { sel = document.createElement("select"); sel.setAttribute("class","sel_class"); sel.setAttribute("id",sel_id); sel.setAttribute("name",sel_id); sel_dest.appendChild(sel); opt = null; reset_obj(sel_dest); opt_child = xml_doc.getElementsByTagName("res_option"); for(var i = 0;i < opt_child.length;i++) { dsvalue = opt_child.item(i).childNodes[0].firstChild.data; dstext = opt_child.item(i).childNodes[1].firstChild.data opt = document.createElement("option"); opt.setAttribute("value",dsvalue); if(i==0) opt.setAttribute("selected",true); opt.appendChild(document.createTextNode(dstext)); sel.appendChild(opt); } sel = sel.cloneNode(true); form_dest.appendChild(sel); } else sel_dest.style.display="none" } Pozniej za kazda zmiana kraju tworzysz od nowa selecty w divach i wrzucasz dane do selecta. To rozwiazuje 2 problem - czyli jak cos zmienisz to znika. Jezeli chcesz zeby 3 select znikal a 2 zostal bo cos tam - to wiadomo jakies parametry musisz dolozyc |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. Problem w tym, że w ogóle nie mam szerszego pojecia co mam z tym zrobić, gdzie wstawić jak wywołać itd.. W tej kwesti jestem zielony. Prosiłbym o przedstawienie tego w takiej formie, aby już bez grzebania w kodzie wstawić i patrzeć na efekty. Powiem wręcz, że licze na gotowca, za którego z góry dziękuję.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 2 Dołączył: 24.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
he he chyba forum sluzy do tego zeby pomagac a nie pisac za kogos
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:12 |