Pupe64etoo_92
Registered
Имаме два селекта един за държави а другия за области.
За областите със id=city си ги създавам със два масива като всичко е с джаваскрипт.
[js]
var CountryId=document.getElementById("state");
var CityId=document.getElementById("city");
var CityText;
var CityValue;
var i;
[/js]
Вземам идито на държавите със id=state, другото ид е ясно.
Като CityText ще съдържа масив със областите, а CityValue съответно тяхната стойност, а var i; се използва във for цикли.
[js]
CountryId.onchange=function(){
var SelectOption=CountryId.options[CountryId.selectedIndex].value;
if(SelectOption=="AL"){
CityText=new Array("<? echo $lang['oblast_selected'];?>","<? echo $lang['oblast_albaniq'];?>","<? echo $lang['oblast_berat'];?>");
CityValue=new Array("0","1","2");
for(i=0;i<CityText.length;i++){
CityId.options=new Option(CityText,CityValue);
if(CityId.options.value=="<? echo $city;?>"){CityId.options.selected=true;}
}else if(SelectOption=="DZ"){
CityText=new Array("<? echo $lang['oblast_selected'];?>","<? echo $lang['oblast_algeria'];?>","<? echo $lang['oblast_adrar'];?>","<? echo $lang['oblast_annaba'];?>","<? echo $lang['oblast_shlef'];?>","<? echo $lang['oblast_laguna'];?>","<? echo $lang['oblast_umm_el_buagi'];?>");
CityValue=new Array("0","3","4","5","6","7","8");
for(i=0;i<CityText.length;i++){
CityId.options=new Option(CityText,CityValue);
if(CityId.options.value=="<? echo $city;?>"){CityId.options.selected=true;}
}
};
window.onload = CountryId.onchange;
[/js]
Както споменах по-горе имаме два масива със областите и тяхната стойност. От там преброяваме според коя държава сме избрали. Ако сме избрали Албания тя има стойност AL, Съответно правим if конструкция за албания
във конструкцията се съдържат двата арея и със for цикъл създавам опциите като обхождам масива със заглавията на държавите, тоест CityText и според броя на ключовете създавам опциите. А за конструкцията
Вадя от сяла стойноста, ако има избрана такава и селектвам опцията която съдържа тази стойност.
А
Използвам за да ми даде веднага коя държава е избрана(селектната).
Проблема ми е че за всяка държава са различен брой областите и, Ако се избрали например държавата със стойност DZ която съдържа 7 области, и веднага след това като избера Албания със стойност AL която има три области, след тези три области се прибавят и на DZ до 7.
И от там ми идва проблема трябва да измисля как да преброявам колко области има дадената държава и излишните със remove(); да ги махам.
Тоест нещо такова :
[js]function RemoveCityId(){
var i;
for(i=0;i<CityText.length;i++){CityId.options.remove(i);}
} [/js]
При това положение като я извикам горе след
CountryId.onchange=function(){
var SelectOption=CountryId.options[CountryId.selectedIndex].value;
RemoveCityId();
Ми изтрива всичките създадени опции и причината мисля че е
ако не се бъркам нещо.
Въпросът ми е какъв вариянт да измисля да премахвам излишните опции които остават от друга държава с повече области от съответната избрана с по-малко области.
Очаквам предложения.
За областите със id=city си ги създавам със два масива като всичко е с джаваскрипт.
[js]
var CountryId=document.getElementById("state");
var CityId=document.getElementById("city");
var CityText;
var CityValue;
var i;
[/js]
Вземам идито на държавите със id=state, другото ид е ясно.
Като CityText ще съдържа масив със областите, а CityValue съответно тяхната стойност, а var i; се използва във for цикли.
[js]
CountryId.onchange=function(){
var SelectOption=CountryId.options[CountryId.selectedIndex].value;
if(SelectOption=="AL"){
CityText=new Array("<? echo $lang['oblast_selected'];?>","<? echo $lang['oblast_albaniq'];?>","<? echo $lang['oblast_berat'];?>");
CityValue=new Array("0","1","2");
for(i=0;i<CityText.length;i++){
CityId.options=new Option(CityText,CityValue);
if(CityId.options.value=="<? echo $city;?>"){CityId.options.selected=true;}
}else if(SelectOption=="DZ"){
CityText=new Array("<? echo $lang['oblast_selected'];?>","<? echo $lang['oblast_algeria'];?>","<? echo $lang['oblast_adrar'];?>","<? echo $lang['oblast_annaba'];?>","<? echo $lang['oblast_shlef'];?>","<? echo $lang['oblast_laguna'];?>","<? echo $lang['oblast_umm_el_buagi'];?>");
CityValue=new Array("0","3","4","5","6","7","8");
for(i=0;i<CityText.length;i++){
CityId.options=new Option(CityText,CityValue);
if(CityId.options.value=="<? echo $city;?>"){CityId.options.selected=true;}
}
};
window.onload = CountryId.onchange;
[/js]
Както споменах по-горе имаме два масива със областите и тяхната стойност. От там преброяваме според коя държава сме избрали. Ако сме избрали Албания тя има стойност AL, Съответно правим if конструкция за албания
PHP:
if(SelectOption=="AL"){}
PHP:
if(CityId.options[i].value=="<? echo $city;?>"){CityId.options[i].selected=true;}
А
PHP:
window.onload = CountryId.onchange;
Проблема ми е че за всяка държава са различен брой областите и, Ако се избрали например държавата със стойност DZ която съдържа 7 области, и веднага след това като избера Албания със стойност AL която има три области, след тези три области се прибавят и на DZ до 7.
И от там ми идва проблема трябва да измисля как да преброявам колко области има дадената държава и излишните със remove(); да ги махам.
Тоест нещо такова :
[js]function RemoveCityId(){
var i;
for(i=0;i<CityText.length;i++){CityId.options.remove(i);}
} [/js]
При това положение като я извикам горе след
CountryId.onchange=function(){
var SelectOption=CountryId.options[CountryId.selectedIndex].value;
RemoveCityId();
Ми изтрива всичките създадени опции и причината мисля че е
PHP:
window.onload = CountryId.onchange;
Въпросът ми е какъв вариянт да измисля да премахвам излишните опции които остават от друга държава с повече области от съответната избрана с по-малко области.
Очаквам предложения.