Въпрос за select и javascript

Pupe64etoo_92

Registered
Искам да попитам как ще стане следното нещо, така:

Правя един select със държави ето пример:

Код:
<select name="form_news_durjava" class="adm_input_hover" style="width:320px; height:20px;">
<option value="0"><? echo $lang['durjava_select']; ?></option>
<? if($news_durjava=="AL"){echo'<option value="AL" selected="selected">'.$lang['create_cv_born_republic_albania'].'</option>';}else{echo'<option value="AL">'.$lang['create_cv_born_republic_albania'].'</option>';}

if($news_durjava=="DZ"){echo'<option value="DZ" selected="selected">'.$lang['create_cv_born_republic_algeria'].'</option>';}else{echo'<option value="DZ">'.$lang['create_cv_born_republic_algeria'].'</option>';}

if($news_durjava=="AM"){echo'<option value="AM" selected="selected">'.$lang['create_cv_born_republic_armenia'].'</option>';}else{echo'<option value="AM">'.$lang['create_cv_born_republic_armenia'].'</option>';}

if($news_durjava=="AU"){echo'<option value="AU" selected="selected">'.$lang['create_cv_born_republic_australia'].'</option>';}else{echo'<option value="AU">'.$lang['create_cv_born_republic_australia'].'</option>';}

if($news_durjava=="AT"){echo'<option value="AT" selected="selected">'.$lang['create_cv_born_republic_austria'].'</option>';}else{echo'<option value="AT">'.$lang['create_cv_born_republic_austria'].'</option>';}

if($news_durjava=="BH"){echo'<option value="BH" selected="selected">'.$lang['create_cv_born_republic_bahrain'].'</option>';}else{echo'<option value="BH">'.$lang['create_cv_born_republic_bahrain'].'</option>';}

if($news_durjava=="BY"){echo'<option value="BY" selected="selected">'.$lang['create_cv_born_republic_belarus'].'</option>';}else{echo'<option value="BY">'.$lang['create_cv_born_republic_belarus'].'</option>';}

if($news_durjava=="BE"){echo'<option value="BE" selected="selected">'.$lang['create_cv_born_republic_belgium'].'</option>';}else{echo'<option value="BE">'.$lang['create_cv_born_republic_belgium'].'</option>';}

if($news_durjava=="BA"){echo'<option value="BA" selected="selected">'.$lang['create_cv_born_republic_bosnia_and_herzegovina'].'</option>';}else{echo'<option value="BA">'.$lang['create_cv_born_republic_bosnia_and_herzegovina'].'</option>';}

if($news_durjava=="BG"){echo'<option value="BG" selected="selected">'.$lang['create_cv_born_republic_bulgaria'].'</option>';}else{echo'<option value="BG">'.$lang['create_cv_born_republic_bulgaria'].'</option>';}
</select>

И така нали знаете че всяка държава си има области.
Например на съм избрал България, тя има следните области
Код:
<select name="form_news_oblast" class="adm_input_hover" style="width:320px;height:20px;">
<option value="0"><? echo $lang['create_cv_oblast_selected'];?></option>
<?
if($news_oblast=="BL"){echo'<option value="BL" selected="selected">'.$lang['create_cv_oblast_blagoevgrad'].'</option>';}else{echo'<option value="BL">'.$lang['create_cv_oblast_blagoevgrad'].'</option>';}

if($news_oblast=="BU"){echo'<option value="BU" selected="selected">'.$lang['create_cv_oblast_burgas'].'</option>';}else{echo'<option value="BU">'.$lang['create_cv_oblast_burgas'].'</option>';}

if($news_oblast=="$lang[create_cv_oblast_varna]"){echo'<option value="BL" selected="selected">'.$lang['create_cv_oblast_varna'].'</option>';}else{echo'<option value="BL">'.$lang['create_cv_oblast_varna'].'</option>';}

if($news_oblast=="VN"){echo'<option value="VN" selected="selected">'.$lang['create_cv_oblast_velikoturnovo'].'</option>';}else{echo'<option value="VN">'.$lang['create_cv_oblast_velikoturnovo'].'</option>';}

if($news_oblast=="VD"){echo'<option value="VD" selected="selected">'.$lang['create_cv_oblast_vidin'].'</option>';}else{echo'<option value="VD">'.$lang['create_cv_oblast_vidin'].'</option>';}

if($news_oblast=="VR"){echo'<option value="VR" selected="selected">'.$lang['create_cv_oblast_vraca'].'</option>';}else{echo'<option value="VR">'.$lang['create_cv_oblast_vraca'].'</option>';}

if($news_oblast=="GA"){echo'<option value="GA" selected="selected">'.$lang['create_cv_oblast_gabrovo'].'</option>';}else{echo'<option value="GA">'.$lang['create_cv_oblast_gabrovo'].'</option>';}

if($news_oblast=="DO"){echo'<option value="DO" selected="selected">'.$lang['create_cv_oblast_dobrich'].'</option>';}else{echo'<option value="DO">'.$lang['create_cv_oblast_dobrich'].'</option>';}

if($news_oblast=="KA"){echo'<option value="KA" selected="selected">'.$lang['create_cv_oblast_kurdjali'].'</option>';}else{echo'<option value="KA">'.$lang['create_cv_oblast_kurdjali'].'</option>';}

if($news_oblast=="KD"){echo'<option value="KD" selected="selected">'.$lang['create_cv_oblast_kustendil'].'</option>';}else{echo'<option value="KD">'.$lang['create_cv_oblast_kustendil'].'</option>';}

if($news_oblast=="LV"){echo'<option value="LV" selected="selected">'.$lang['create_cv_oblast_lovech'].'</option>';}else{echo'<option value="LV">'.$lang['create_cv_oblast_lovech'].'</option>';}

if($news_oblast=="MN"){echo'<option value="MN" selected="selected">'.$lang['create_cv_oblast_montana'].'</option>';}else{echo'<option value="MN">'.$lang['create_cv_oblast_montana'].'</option>';}

if($news_oblast=="PA"){echo'<option value="PA" selected="selected">'.$lang['create_cv_oblast_pazardjik'].'</option>';}else{echo'<option value="PA">'.$lang['create_cv_oblast_pazardjik'].'</option>';}

if($news_oblast=="PK"){echo'<option value="PK" selected="selected">'.$lang['create_cv_oblast_pernik'].'</option>';}else{echo'<option value="PK">'.$lang['create_cv_oblast_pernik'].'</option>';}

if($news_oblast=="PL"){echo'<option value="PL" selected="selected">'.$lang['create_cv_oblast_pleven'].'</option>';}else{echo'<option value="PL">'.$lang['create_cv_oblast_pleven'].'</option>';}

if($news_oblast=="PD"){echo'<option value="PD" selected="selected">'.$lang['create_cv_oblast_plovdiv'].'</option>';}else{echo'<option value="PD">'.$lang['create_cv_oblast_plovdiv'].'</option>';}

if($news_oblast=="RZ"){echo'<option value="RZ" selected="selected">'.$lang['create_cv_oblast_razgrad'].'</option>';}else{echo'<option value="RZ">'.$lang['create_cv_oblast_razgrad'].'</option>';}

if($news_oblast=="RS"){echo'<option value="RS" selected="selected">'.$lang['create_cv_oblast_ruse'].'</option>';}else{echo'<option value="RS">'.$lang['create_cv_oblast_ruse'].'</option>';}

if($news_oblast=="SS"){echo'<option value="SS" selected="selected">'.$lang['create_cv_oblast_silistra'].'</option>';}else{echo'<option value="SS">'.$lang['create_cv_oblast_silistra'].'</option>';}

if($news_oblast=="SL"){echo'<option value="SL" selected="selected">'.$lang['create_cv_oblast_sliven'].'</option>';}else{echo'<option value="SL">'.$lang['create_cv_oblast_sliven'].'</option>';}

if($news_oblast=="SM"){echo'<option value="SM" selected="selected">'.$lang['create_cv_oblast_smolqn'].'</option>';}else{echo'<option value="SM">'.$lang['create_cv_oblast_smolqn'].'</option>';}

if($news_oblast=="SF"){echo'<option value="SF" selected="selected">'.$lang['create_cv_oblast_sofiq'].'</option>';}else{echo'<option value="SF">'.$lang['create_cv_oblast_sofiq'].'</option>';}

if($news_oblast=="SZ"){echo'<option value="SZ" selected="selected">'.$lang['create_cv_oblast_starazagora'].'</option>';}else{echo'<option value="SZ">'.$lang['create_cv_oblast_starazagora'].'</option>';}

if($news_oblast=="TA"){echo'<option value="TA" selected="selected">'.$lang['create_cv_oblast_turgovishte'].'</option>';}else{echo'<option value="TA">'.$lang['create_cv_oblast_turgovishte'].'</option>';}

if($news_oblast=="HA"){echo'<option value="HA" selected="selected">'.$lang['create_cv_oblast_haskovo'].'</option>';}else{echo'<option value="HA">'.$lang['create_cv_oblast_haskovo'].'</option>';}

if($news_oblast=="SN"){echo'<option value="SN" selected="selected">'.$lang['create_cv_oblast_shumen'].'</option>';}else{echo'<option value="SN">'.$lang['create_cv_oblast_shumen'].'</option>';}

if($news_oblast=="YA"){echo'<option value="YA" selected="selected">'.$lang['create_cv_oblast_qmbol'].'</option>';}else{echo'<option value="YA">'.$lang['create_cv_oblast_qmbol'].'</option>';}
?>
</select>

Със една дума искам да направя със джава, не съм запознат до толкова със езика, когато потребител избере някоя държава да се зареждат нейните области във селекта със областите.

Дайте ми пример със този скрипт който съм предоставил за българия и областите и, ако може.
Мерси предварително.
 
Този скрипт е ужасен, за какво са ти такива огромни списъци. Направи една селект заявка да вади всичките държави в селект меню и след това ще те оправим с градовете. :)
 
Пич това е селект меню, и съответно има if конструкции които проверяват нещо, тоест коя опция е била избрата и сайта е многоезичен, но това е друг въпрос, за това ти се вижда много кода. Ако знаеш нещо те помоля да вземеш от селекта със държави българия и да ми дадеш примерече ако не здраве да е!
 
Pupe64etoo_92 каза:
Пич това е селект меню, и съответно има if конструкции които проверяват нещо, тоест коя опция е била избрата и сайта е многоезичен, но това е друг въпрос, за това ти се вижда много кода. Ако знаеш нещо те помоля да вземеш от селекта със държави българия и да ми дадеш примерече ако не здраве да е!

А този масив $lang какво ти връща? Така никой няма да ти помогне, дай повече информация.
 
Ето това ми връща.

PHP:
// Държави
$lang['durjava_select'] ='- Избери Държава -';
$lang['create_cv_born_republic_albania'] ='Албания';
$lang['create_cv_born_republic_algeria'] ='Алжирия';
$lang['create_cv_born_republic_armenia'] ='Армения';
$lang['create_cv_born_republic_australia'] ='Австралия';
$lang['create_cv_born_republic_austria'] ='Австрия';
$lang['create_cv_born_republic_bahrain'] ='Бахрейн';
$lang['create_cv_born_republic_belarus'] ='Беларус';
$lang['create_cv_born_republic_belgium'] ='Белгия';
$lang['create_cv_born_republic_bosnia_and_herzegovina'] ='Босна и Херцеговина';
$lang['create_cv_born_republic_bulgaria'] ='България';
$lang['create_cv_born_republic_canada'] ='Канада';
$lang['create_cv_born_republic_croatia'] ='Хърватия';
$lang['create_cv_born_republic_cyprus'] ='Кипър';
$lang['create_cv_born_republic_czech_republic'] ='Чехия';
$lang['create_cv_born_republic_denmark'] ='Дания';
$lang['create_cv_born_republic_estonia'] ='Естония';
$lang['create_cv_born_republic_finland'] ='Финландия';
$lang['create_cv_born_republic_france'] ='Франция';
$lang['create_cv_born_republic_germany'] ='Германия';
$lang['create_cv_born_republic_greece'] ='Гърция';
$lang['create_cv_born_republic_hungary'] ='Унгария';
$lang['create_cv_born_republic_iceland'] ='Исландия';
$lang['create_cv_born_republic_ireland'] ='Ирландия';
$lang['create_cv_born_republic_israel'] ='Израел';
$lang['create_cv_born_republic_italy'] ='Италия';
$lang['create_cv_born_republic_japan'] ='Япония';
$lang['create_cv_born_republic_korea_north'] ='Северна Кореа';
$lang['create_cv_born_republic_kuwait'] ='Кувейт';
$lang['create_cv_born_republic_latvia'] ='Латвия';
$lang['create_cv_born_republic_libya'] ='Либия';
$lang['create_cv_born_republic_liechtenstein'] ='Лихтенщайн';
$lang['create_cv_born_republic_lithuania'] ='Литва';
$lang['create_cv_born_republic_luxembourg'] ='Люксенбург';
$lang['create_cv_born_republic_macedonia'] ='Македония, Югославска Република';
$lang['create_cv_born_republic_maldives'] ='Малдивите';
$lang['create_cv_born_republic_malta'] ='Малта';
$lang['create_cv_born_republic_moldova'] ='Молдова';
$lang['create_cv_born_republic_monaco'] ='Монако';
$lang['create_cv_born_republic_netherlands'] ='Нидерландия';
$lang['create_cv_born_republic_new_zealand'] ='Нова Зеландия';
$lang['create_cv_born_republic_norway'] ='Норвегия';
$lang['create_cv_born_republic_oman'] ='Оман';
$lang['create_cv_born_republic_poland'] ='Полша';
$lang['create_cv_born_republic_portugal'] ='Португалия';
$lang['create_cv_born_republic_qatar'] ='Катар';
$lang['create_cv_born_republic_romania'] ='Ромъния';
$lang['create_cv_born_republic_russia'] ='Русия';
$lang['create_cv_born_republic_saudi_arabia'] ='Саудитска Арабия';
$lang['create_cv_born_republic_serbia'] ='Сърбия';
$lang['create_cv_born_republic_slovakia'] ='Словакия';
$lang['create_cv_born_republic_slovenia'] ='Словения';
$lang['create_cv_born_republic_south_africa'] ='Южна Африка';
$lang['create_cv_born_republic_spain'] ='Испания';
$lang['create_cv_born_republic_sweden'] ='Швеция';
$lang['create_cv_born_republic_switzerland'] ='Швейцария';
$lang['create_cv_born_republic_syria'] ='Сирия';
$lang['create_cv_born_republic_gambia'] ='Гамбия';
$lang['create_cv_born_republic_tunisia'] ='Тунис';
$lang['create_cv_born_republic_turkey'] ='Турция';
$lang['create_cv_born_republic_ukraine'] ='Украйна';
$lang['create_cv_born_republic_nited_arab_emirates'] ='Обединените арабски емирства';
$lang['create_cv_born_republic_united_kingdom'] ='Великобритания';
$lang['create_cv_born_republic_united_states'] ='САЩ';
$lang['create_cv_born_republic_yugoslavia'] ='Югославия';

PHP:
//Области
$lang['create_cv_oblast_selected'] ='- Изберете Област -';
$lang['create_cv_oblast_blagoevgrad'] ='Благоевград Област';
$lang['create_cv_oblast_burgas'] ='Бургас Област';
$lang['create_cv_oblast_varna'] ='Варна Област';
$lang['create_cv_oblast_velikoturnovo'] ='Велико Търново Област';
$lang['create_cv_oblast_vidin'] ='Видин Област';
$lang['create_cv_oblast_vraca'] ='Враца Област';
$lang['create_cv_oblast_gabrovo'] ='Габрово Област';
$lang['create_cv_oblast_dobrich'] ='Добрич Област';
$lang['create_cv_oblast_kurdjali'] ='Кърджали Област';
$lang['create_cv_oblast_kustendil'] ='Кюстендил Област';
$lang['create_cv_oblast_lovech'] ='Ловеч Област';
$lang['create_cv_oblast_montana'] ='Монтана Област';
$lang['create_cv_oblast_pazardjik'] ='Пазарджик Област';
$lang['create_cv_oblast_pernik'] ='Перник Област';
$lang['create_cv_oblast_pleven'] ='Плевен Област';
$lang['create_cv_oblast_plovdiv'] ='Пловдив Област';
$lang['create_cv_oblast_razgrad'] ='Разград Област';
$lang['create_cv_oblast_ruse'] ='Русе Област';
$lang['create_cv_oblast_silistra'] ='Силистра Област';
$lang['create_cv_oblast_sliven'] ='Сливен Област';
$lang['create_cv_oblast_smolqn'] ='Смолян Област';
$lang['create_cv_oblast_sofiq'] ='София Област';
$lang['create_cv_oblast_starazagora'] ='Стара Загора Област';
$lang['create_cv_oblast_turgovishte'] ='Търговище Област';
$lang['create_cv_oblast_haskovo'] ='Хасково Област';
$lang['create_cv_oblast_shumen'] ='Шумен Област';
$lang['create_cv_oblast_qmbol'] ='Ямбол Област';
 
С твоя пример ми е малко сложно, но ето ти принципно решение:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<script>
	function reloadcity(country) {
		var xmlhttp;
		if (window.XMLHttpRequest)
			xmlhttp = new XMLHttpRequest();
		else if (window.ActiveXObject)
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		else
			alert("Your browser does not support XMLHTTP!");
	 
		xmlhttp.onreadystatechange = function() {
			if(xmlhttp.readyState == 4) {
				var xmlDoc = xmlhttp.responseXML.documentElement;
				var loc = xmlDoc.getElementsByTagName("city");
				document.getElementById('city').options.length=0;
				for (var a=0; a<loc.length; a++) {
						var locVal = loc[a].childNodes[0].nodeValue;
						var elm = document.createElement("option");
						elm.value = locVal;
						elm.innerHTML = locVal;
						document.getElementById('city').appendChild(elm);
					}
			}
		}
		xmlhttp.open("GET", "loc.php?country=" + country, true);
		xmlhttp.send(null);
	}	
	</script>
</head>
<body>
<select id="country" onchange="reloadcity(this.options[this.selectedIndex].value)"><option value="bg">Bulgaria</option><option value="en">United Kingdom</option></select>
<select id="city"></select>
</body>
</html>


Файл: loc.php
PHP:
<?php
header("Content-Type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>\n";
$country = addslashes($_GET['country']);
echo "<items>\n";
if ($country=='bg') {
	echo "<city>Sofia</city>\n";
	echo "<city>Plovdiv</city>\n";
} elseif ($country=='en') {
	echo "<city>London</city>";
	echo "<city>Dublin</city>";
}
echo "</items>";
?>
 

Back
Горе