код не работает только в FF
<script type="text/javascript" src="../JsHttpRequest/lib/JsHttpRequest/JsHttpRequest.js"></script>
<script type="text/javascript">
function update_select(select, id_key, checked_status) {
JsHttpRequest.query(
'http://www2.meeting.lv/regions/ajax/backend.php',
{
'language': 1,
'select': select,
'id_key': id_key,
'checked': checked_status
},
function(result) {
if (result) {
eval(result["javascript"]);
}
},
false
);
}
function addOption(oListbox, text, value, isDefaultSelected, isSelected)
{
var oOption = document.createElement("option");
oOption.appendChild(document.createTextNode(text));
oOption.setAttribute("value", value);
if (isDefaultSelected)
{
oOption.defaultSelected = true;
}
else if (isSelected)
{
oOption.selected = true;
}
oListbox.appendChild(oOption);
}
function select_ini()
{
var groups = document.getElementById("groups");
var categories = document.getElementById("categories");
var countries = document.getElementById("countries");
var regions = document.getElementById("regions");
}
function show_objects()
{
window.location.href = "../regions/?lang=1&gr=" + groups.options[groups.selectedIndex].value + "&cat=" + categories.options[categories.selectedIndex].value + "&c=" + countries.options[countries.selectedIndex].value + "&rg=" + regions.options[regions.selectedIndex].value;
}
select_ini();
update_select('groups', 0, 0);
update_select('categories', 0, 0);
update_select('countries', 1, 1);
</script>
в body (в самом HTML)
Группа<br>
<select id="groups" style="font-size: 11px;" onChange="update_select('categories', groups.options[this.selectedIndex].value);">
</select>
</td>
<td>
Категория<br>
<select id="categories" style="font-size: 11px;" onChange="update_select('countries', categories.options[this.selectedIndex].value);">
</select>
</td>
<td>
Страна<br>
<select id="countries" style="font-size: 11px;" onChange="update_select('regions', countries.options[this.selectedIndex].value);">
</select>
Ошибка в при выполнении update_select, когда приходит ответ от сервера то eval(result["javascript"]); выполняет код, result["javascript"] - строка с кодом
categories.options.length = 0;
addOption(categories, 'Kino', '1', false);
addOption(categories, 'Sauna', '2', false);
addOption(categories, 'Tourcompanies', '3', false); addOption(categories, 'Rent a Car', '4', false);
addOption(categories, 'Tennis', '5', false);
в IE всё ок... FF ругается что categories не обпредлена :(
Ну в общем фф прав - она действительно не определена нигде кроме функции select_ini() - а вы слышали когда-нибудь про область видимости переменных?
И про оформленный код тоже...