Помогите настроить скриптик

  • Автор темы LOKI
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

LOKI

Гость
#1
Помогите пожалуйста настройть этот код, чтобы были доступны для выбора все страны (в данном коде Нигерия), даже если к ним не заданы города. И чтобы пока страна не выбрана, город нельзя будет выбрать.
Код:
<html> 
<head> 

<title>Тест</title> 

<script language="JavaScript"> 

function cGorod(strana_in, gorod_in) 
{ 
this.gorod = gorod_in; 
this.strana = strana_in; 
} 

Strani = new Array(); 
Strani["1"] = "Германия"; 
Strani["2"] = "Россия"; 
Strani["3"] = "Франция"; 
Strani["4"] = "Нигерия"; 

Goroda = new Array(); 
Goroda["Берлин"] = new cGorod(1,'Берлин'); 
Goroda["Гамбург"] = new cGorod(1,'Гамбург'); 
Goroda["Бонн"] = new cGorod(1,'Бонн'); 
Goroda["Москва"] = new cGorod(2,'Москва'); 
Goroda["Санкт-Петербург"] = new cGorod(2,'Санкт-Петербург'); 
Goroda["Нижний Новгород"] = new cGorod(2,'Нижний Новгород'); 
Goroda["Париж"] = new cGorod(3,'Париж'); 
Goroda["Марсель"] = new cGorod(3,'Марсель'); 
Goroda["Бордо"] = new cGorod(3,'Бордо'); 

function addgorod(key) 
{ 
document.searchfrm.gorod.length++; 
document.searchfrm.gorod[document.searchfrm.gorod.length-1].text = gorod[key]; 
document.searchfrm.gorod[document.searchfrm.gorod.length-1].value = key; 
} 


function chkkeyword(words,word) { 
for(a in words) { 
if(words[a]==word) 
{ 
return true; 
} 
} 
return false; 
} 

function checkall(strana,gorod,i) 
{ 
if (strana=="") 
{ 
if(chkkeyword(Goroda[i].gorod,gorod) || gorod==999) 
return true; 
}// end if 

else { 
if (Goroda[i].strana==strana || strana==999) 
if(Goroda[i].gorod==gorod || gorod==999) 
return true; 
}//end else 
return false; 
} 

function creategorod(strana,gorod) 
{ 
document.searchfrm.gorod.length=2; 
document.searchfrm.gorod[0].value = 999; 
document.searchfrm.gorod[0].text = "все"; 
k=1; 
for (i in Goroda) 
{ 
if (checkall(strana,999,i)) 
{ 
document.searchfrm.gorod[k].value=i; 
document.searchfrm.gorod[k].text=Goroda[i].gorod; 
document.searchfrm.gorod.length=k+2; 
k++; 
} 
} 
document.searchfrm.gorod.length=k; 
} 

function createstrana(strana,gorod) 
{ 
document.searchfrm.strana.length=2; 
document.searchfrm.strana[0].value = 999; 
document.searchfrm.strana[0].text = "все"; 
k=1; 
for (i in Goroda) 
{ 

if (checkall(999,gorod,i)) 
{if (document.searchfrm.strana[k-1].text!=Strani[Goroda[i].strana]) 
{ 
document.searchfrm.strana[k].value=Goroda[i].strana; 
document.searchfrm.strana[k].text=Strani[Goroda[i].strana]; 
document.searchfrm.strana.length=k+2; 
k++; 
} 
} //end if 

}//end for 

document.searchfrm.strana.length=k; 
} 

function reselect(field,check) 
{ 
for (i=0;i<=field.length-1;i++) 
{ 
if (field[i].value==check) 
{ 
field.selectedIndex = i; 
} 
} 
} 

function change(what) 
{ 
var selectedStrana = document.searchfrm.strana[document.searchfrm.strana.selectedIndex].value; 
/*tmp = document.searchfrm.gorod.selectedIndex; 
if(tmp >= 0) 
selectedGorod = document.searchfrm.gorod[tmp].value; 
else selectedGorod = 0;*/ 
var selectedGorod = document.searchfrm.gorod[document.searchfrm.gorod.selectedIndex].value; 

createstrana(selectedStrana,selectedGorod); 
creategorod(selectedStrana,selectedGorod); 

reselect (document.searchfrm.strana,selectedStrana); 
reselect (document.searchfrm.gorod,selectedGorod); 

} 

function makelist() 
{ 
document.searchfrm.strana.length = 1; 
document.searchfrm.strana[0].value = 999; 
document.searchfrm.strana[0].text = "все"; 

for(i in Strani) 
{ 
document.searchfrm.strana.length++; 
l = document.searchfrm.strana.length; 
document.searchfrm.strana[l-1].value = i; 
document.searchfrm.strana[l-1].text = Strani[i]; 
} 
} 

</script> 

</head> 

<br> 

<form method=GET action="search.cgi" name="searchfrm"> 
<b>Город:</b> 
<BR> 
<select style="width: 150" name=strana onChange="change()" size="1"> 
<option value="999">** Ошибка **</option> 
<option value=*></option> 
</select> 
<BR> 
<b>Район:</b><BR> 
<select style="width: 150" name=gorod onChange="change()" > 
<option value="999">** Ошибка **</option> 
<option value=*></option> 
</select> 

</form> 

<script language="JavaScript"> 
<!-- 


makelist(); 
change(); 
//--> 
</script> 

</body> 

</html>
 
G

Gisma

Гость
#2
задай конкретно вопрос, т.е. корректно поставь задачу. Мы тоже любим считать свое время
 
L

LOKI

Гость
#3
задай конкретно вопрос, т.е. корректно поставь задачу. Мы тоже любим считать свое время
Задача такова:
Этот код работает, но позволяет выбирать только из тех стран к которым привязаны города.
В данном коде к Россие, Германии и Франции заданы по 3 города, а к Нигерии ни одного поэтому она и не выводиться, а мне нужно чтобы выводилась.
В конечном итоге я хочу получить скрипт действующий также как соответствующая часть на этой странице.
 
Статус
Закрыто для дальнейших ответов.