помогите разобраться со скриптом

 
0
 
JavaScript
ava
svip | 23.07.2007, 23:55
есть скрипт который подгружает регион после выбора страны. регионы грузятся во фрейм нормально а вот в <option> - не хотят, хотя на http://loveplanet.ru/ все работает.
вот пример http://svip-web.net.ru/search.html
а вот сам скрипт

<!-- search form -->
<div id="search_form">

<script language="JavaScript" type="text/javascript">
function close_block(x){document.getElementById(x).style.display='none';}
function open_block(x){document.getElementById(x).style.display='block';}
</script>

<form id="anketa" name="anketa" method="post" action="/a-search/" class="center">

<div class="f_body">
<div>
<div class="floats">



<div>Ñòðàíà<br><select name="country" class="residence" onchange="srch_dg.ForceUpdate(1);"><option value="0">---- íå èìååò çíà÷åíèÿ ----</option><OPTION value="3159">Ðîññèÿ</OPTION>
<OPTION value="4">Àâñòðàëèÿ</OPTION>
<OPTION value="63">Àâñòðèÿ</OPTION>
<OPTION value="81">Àçåðáàéäæàí</OPTION>
<OPTION value="173">Àíãóèëüÿ</OPTION>
<OPTION value="177">Àðãåíòèíà</OPTION>
<OPTION value="245">Àðìåíèÿ</OPTION>
<OPTION value="7716093">Àðóëüêî</OPTION>
<OPTION value="248">Áåëàðóñü</OPTION>
<OPTION value="401">Áåëèç</OPTION>
<OPTION value="404">Áåëüãèÿ</OPTION>
<OPTION value="425">Áåðìóäû</OPTION>
<OPTION value="428">Áîëãàðèÿ</OPTION>
<OPTION value="467">Áðàçèëèÿ</OPTION>
<OPTION value="616">Âåëèêîáðèòàíèÿ</OPTION>
<OPTION value="924">Âåíãðèÿ</OPTION>
<OPTION value="971">Âüåòíàì</OPTION>
<OPTION value="994">Ãàèòè</OPTION>
<OPTION value="1007">Ãâàäåëóïà</OPTION>
<OPTION value="1012">Ãåðìàíèÿ</OPTION>
<OPTION value="1206">Ãîëëàíäèÿ</OPTION>
<OPTION value="2567393">Ãîíäóðàñ</OPTION>
<OPTION value="277557">Ãîíêîíã</OPTION>
<OPTION value="1258">Ãðåöèÿ</OPTION>
<OPTION value="1280">Ãðóçèÿ</OPTION>
<OPTION value="1366">Äàíèÿ</OPTION>
<OPTION value="2577958">Äîìèíèêàíñêàÿ ðåñïóáëèêà</OPTION>
<OPTION value="1380">Åãèïåò</OPTION>
<OPTION value="1393">Èçðàèëü</OPTION>
<OPTION value="1451">Èíäèÿ</OPTION>
<OPTION value="277559">Èíäîíåçèÿ</OPTION>
<OPTION value="277561">Èîðäàíèÿ</OPTION>
<OPTION value="3410238">Èðàê</OPTION>
<OPTION value="1663">Èðàí</OPTION>
<OPTION value="1696">Èðëàíäèÿ</OPTION>
<OPTION value="1707">Èñïàíèÿ</OPTION>
<OPTION value="1786">Èòàëèÿ</OPTION>
<OPTION value="1894">Êàçàõñòàí</OPTION>
<OPTION value="2163">Êàìåðóí</OPTION>
<OPTION value="2172">Êàíàäà</OPTION>
<OPTION value="582029">Êàðèáû</OPTION>
<OPTION value="2297">Êèïð</OPTION>
<OPTION value="2303">Êèðãûçñòàí</OPTION>
<OPTION value="2374">Êèòàé</OPTION>
<OPTION value="582040">Êîðåÿ</OPTION>
<OPTION value="2430">Êîñòà-Ðèêà</OPTION>
<OPTION value="582077">Êóáà</OPTION>
<OPTION value="2443">Êóâåéò</OPTION>
<OPTION value="2448">Ëàòâèÿ</OPTION>
<OPTION value="2505884">Ëèâàí</OPTION>
<OPTION value="582060">Ëèâàí</OPTION>
<OPTION value="2509">Ëèâèÿ</OPTION>
<OPTION value="2514">Ëèòâà</OPTION>
<OPTION value="2614">Ëþêñåìáóðã</OPTION>
<OPTION value="582041">Ìàêåäîíèÿ</OPTION>
<OPTION value="277563">Ìàëàéçèÿ</OPTION>
<OPTION value="582043">Ìàëüòà</OPTION>
<OPTION value="2617">Ìåêñèêà</OPTION>
<OPTION value="582082">Ìîçàìáèê</OPTION>
<OPTION value="2788">Ìîëäîâà</OPTION>
<OPTION value="2833">Ìîíàêî</OPTION>
<OPTION value="2687701">Ìîíãîëèÿ</OPTION>
<OPTION value="582065">Ìîðîêêî</OPTION>
<OPTION value="277551">Íèäåðëàíäû</OPTION>
<OPTION value="2837">Íîâàÿ Çåëàíäèÿ</OPTION>
<OPTION value="2880">Íîðâåãèÿ</OPTION>
<OPTION value="582051">Î.À.Ý.</OPTION>
<OPTION value="582105">Îñòðîâ Ìýí</OPTION>
<OPTION value="582044">Ïàêèñòàí</OPTION>
<OPTION value="582046">Ïåðó</OPTION>
<OPTION value="2897">Ïîëüøà</OPTION>
<OPTION value="3141">Ïîðòóãàëèÿ</OPTION>
<OPTION value="3156">Ðåþíüîí</OPTION>
<OPTION value="3159">Ðîññèÿ</OPTION>
<OPTION value="277555">Ðóìûíèÿ</OPTION>
<OPTION value="5681">ÑØÀ</OPTION>
<OPTION value="5647">Ñàëüâàäîð</OPTION>
<OPTION value="277565">Ñèíãàïóð</OPTION>
<OPTION value="582067">Ñèðèÿ</OPTION>
<OPTION value="5666">Ñëîâàêèÿ</OPTION>
<OPTION value="5673">Ñëîâåíèÿ</OPTION>
<OPTION value="5678">Ñóðèíàì</OPTION>
<OPTION value="9575">Òàäæèêèñòàí</OPTION>
<OPTION value="277567">Òàéâàíü</OPTION>
<OPTION value="582050">Òàéëàíä</OPTION>
<OPTION value="582090">Òóíèñ</OPTION>
<OPTION value="9638">Òóðêìåíèñòàí</OPTION>
<OPTION value="277569">Òóðêìåíèÿ</OPTION>
<OPTION value="9701">Òóðêñ è Êåéêîñ</OPTION>
<OPTION value="9705">Òóðöèÿ</OPTION>
<OPTION value="9782">Óãàíäà</OPTION>
<OPTION value="9787">Óçáåêèñòàí</OPTION>
<OPTION value="9908">Óêðàèíà</OPTION>
<OPTION value="10648">Ôèíëÿíäèÿ</OPTION>
<OPTION value="10668">Ôðàíöèÿ</OPTION>
<OPTION value="277553">Õîðâàòèÿ</OPTION>
<OPTION value="10874">×åõèÿ</OPTION>
<OPTION value="582031">×èëè</OPTION>
<OPTION value="10904">Øâåéöàðèÿ</OPTION>
<OPTION value="10933">Øâåöèÿ</OPTION>
<OPTION value="582064">Ýêâàäîð</OPTION>
<OPTION value="10968">Ýñòîíèÿ</OPTION>
<OPTION value="3661568">ÞÀÐ</OPTION>
<OPTION value="11002">Þãîñëàâèÿ</OPTION>
<OPTION value="11014">Þæíàÿ Êîðåÿ</OPTION>
<OPTION value="582106">ßìàéêà</OPTION>
<OPTION value="11060">ßïîíèÿ</OPTION>
</select></div>
<div>Ðåãèîí<br><select name="region" class="residence" onchange="srch_dg.ForceUpdate(2);"><option value="0">---- íå èìååò çíà÷åíèÿ ----</option></select></div>
<div>Ãîðîä<br><select name="city" class="residence"><option value="0">---- íå èìååò çíà÷åíèÿ ----</option></select></div>
<div id="green"><button type="submit" class="button" onclick="close_block('green'); open_block('go');">Èñêàòü</button></div>
<div id="go" style="display: none;"><button type="button" class="button">Èäåò Ïîèñê</button></div>
</div>
</div>
</div>

</form>

<iframe id="data_frame" src="" width="100%" height="100%"></iframe>

<script language="JavaScript">
function dg_AddOption(element, value, text)
{
newOption = document.createElement("OPTION");
newOption.text = text;
newOption.value = value;
anketa.elements[element].options.add(newOption, anketa.elements[element].length);
}

function dg_ForceUpdate(type, lang)
{
this.UplType = type;
var country = anketa.elements[this.country_el].options[anketa.elements[this.country_el].selectedIndex].value;
for (i = anketa.elements[this.town_el].options.length - 1; i >= 1 ; i--)
anketa.elements[this.town_el].options.remove(i);
anketa.elements[this.town_el].disabled = true;
if (type == 1)
{
if (country == 0)
{
for (i = anketa.elements[this.region_el].options.length - 1; i >= 1 ; i--)
anketa.elements[this.region_el].options.remove(i);
anketa.elements[this.region_el].disabled = true;
anketa.elements[this.town_el].disabled = true;
return;
}
for (i = anketa.elements[this.region_el].options.length - 1; i >= 1 ; i--)
anketa.elements[this.region_el].options.remove(i);
// anketa.elements[this.region_el].disabled = true;
data_frame.location.href = "http://loveplanet.ru/?a=geo&fs=reg_" + country;
this.CheckDataLoaded();
}
else
{
var region = anketa.elements[this.region_el].options[anketa.elements[this.region_el].selectedIndex].value;
if (region == 0)
anketa.elements[this.town_el].disabled = true;
else
{
data_frame.location.href = "http://loveplanet.ru/?a=geo&fs=cities_" + region;
this.CheckDataLoaded();
}
}
}

function dg_CheckDataLoaded()
{
self.clearTimeout(this.to);
if (this.cur_el == null)
{
if (this.UplType == 1)
this.cur_el = anketa.elements[this.region_el];
else
this.cur_el = anketa.elements[this.town_el];
this.tmp = this.cur_el.options(0).text;
this.cur_el.options(0).text = "Please wait";
data_frame.document.body.innerHTML = "";
this.to = window.setTimeout(this.obj_name + ".CheckDataLoaded()", 500);
return;
}
this.cur_el.options(0).text += '.';

if (data_frame.data_div)
{
var str = data_frame.document.body.innerText.split(",");
k = str.length-1;
if (this.UplType == 1)
{
for (i = 0; i < k; i+=2){
this.AddOption(this.region_el, str[i], str[i+1]);
}
anketa.elements[this.region_el].selectedIndex = 0;
anketa.elements[this.region_el].disabled = false;
}
else
{
for (i = 0; i < k; i+=2)
this.AddOption(this.town_el, str[i], str[i+1]);
anketa.elements[this.town_el].selectedIndex = 0;
anketa.elements[this.town_el].disabled = false;
}
this.cur_el.options(0).text = this.tmp;
this.cur_el = null;
}
else
this.to = window.setTimeout(this.obj_name + ".CheckDataLoaded()", 500);
}

function CDynamicGeo(obj_name, lang, country_el, region_el, town_el)
{
this.to = -1;
this.cur_el = null;
this.obj_name = obj_name;
this.UplType = 0;
this.lang = lang;
this.country_el = country_el;
this.region_el = region_el;
this.town_el = town_el;

this.AddOption = dg_AddOption;
this.ForceUpdate = dg_ForceUpdate;
this.CheckDataLoaded = dg_CheckDataLoaded;

}
</script>

<script>

//var anketa = document.getElementById('anketa');
//var data_frame = document.getElementById('data_frame');
var srch_dg = new CDynamicGeo('srch_dg', 'rus', 'country', 'region', 'city');

var country = anketa.elements['country'].options[anketa.elements['country'].selectedIndex].value;
if (country == 0){
anketa.elements['region'].disabled = true;
anketa.elements['city'].disabled = true;
}
var reg = anketa.elements['region'].options[anketa.elements['region'].selectedIndex].value;
if (reg == 0){
anketa.elements['city'].disabled = true;
}
</script>

</div>
<!-- end search form -->

Comments (2)
ava
svip | 24.07.2007, 12:27 #
ниужеле никто не знает?????
ava
Alik_Kirillovich | 24.07.2007, 21:00 #
Возможно скрипт с вашего сайта пытается загрузить данные с сайта loveplanet.ru. Однако, многие браузеры блокируют такую возможность из-за соображений безопасности, для борьбы с cross-site scripting.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit