Не работает в IE8 , возможно и в др. версиях. В др. браузерах всё работает 100%. Помогите выяснить в чём причина. В javascripte плохо соображаю.
Жирным текстом выделил строку , возможно в которой кроется причина не работы.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
[PHP]
<?php
$host='localhost'; // имя хоста
$database='se'; // имя базы данных
$user='ro'; // заданное вами имя пользователя
$pswd='19'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
define("db_prefix","geo_");
if(isset($_GET['country'])){
echo "<option value='0'>выбрать регион</option>\n";
$z = ('SELECT * FROM '.db_prefix.'area WHERE country='.$_GET["country"].'');
$res = mysql_query($z);
while($row = mysql_fetch_array($res))
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
die;
}
elseif(isset($_GET['region'])){
echo "<option value='0'>выбрать город</option>\n";
$z = ('SELECT * FROM '.db_prefix.'city WHERE area="'.$_GET["region"].'"');
$res = mysql_query($z);
while($row = mysql_fetch_array($res))
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
die;
}
elseif(isset($_GET['city'])){
echo "
<div style='border: #C5D3DC 1px solid; padding: 10px; width: 97%;'>
Вы сделали свой выбор!
</div>";
die;
}
?>
[/PHP]
<select name="country" id="country" onLoad="this.focus = false;"
onChange="ajaxLoad('region', 'ser.php?country='+this.options[this.selectedIndex].value, '','',''); document.getElementById('region').disabled='';">
<option value="0">выбрать страну</option>
[PHP]
<?php
$z = ('SELECT * FROM '.db_prefix.'country');
$res = mysql_query($z);
while($row = mysql_fetch_array($res)){
if($row['id']==@$country){
echo "<option value='" . $row['id'] . "' selected='selected'>" . $row['name'] . "</option>\n";
$country=$row['id'];}
else
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
}
?>[/PHP]
</select>
<select name="region" id="region" <?=(@$country?'':'disabled="disabled"')?>
onChange="ajaxLoad('city', 'ser.php?region='+this.options[this.selectedIndex].value, '','',''); document.getElementById('city').disabled='';">
<option value="0" disabled="disabled">выбрать регион</option>
[PHP]<?php
if(@$country){
$z = ('SELECT * FROM '.db_prefix.'area WHERE country='.$country);
$res = mysql_query($z);
while($row = mysql_fetch_array($res)){
if($row['id']==$region){
echo "<option value='" . $row['id'] . "' selected='selected'>" . $row['name'] . "</option>\n";
$region=$row['id'];}
else
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
}
}
?>
[/PHP]
</select>
<select name="city" id="city" <?=(@$region?'':'disabled="disabled"')?>
onChange="ajaxLoad('info', 'ser.php?city='+this.options[this.selectedIndex].value, '','','');">
<option value="0" disabled="disabled">выбрать город</option>
[PHP]
<?php
if(@$region){
$z = ('SELECT * FROM '.db_prefix.'city WHERE area='.$region);
$res = mysql_query($z);
while($row = mysql_fetch_array($res)){
if($row['id']==@$city){
echo "<option value='" . $row['id'] . "' selected='selected'>" . $row['name'] . "</option>\n";
$region=$row['id'];}
else
echo "<option value='" . $row['id'] . "'>" . $row['name'] . "</option>\n";
}
}
?>[/PHP]
</select>
<div id="info">
</div>
<script language=JavaScript>
function ajaxLoad(obj,url,defMessage,post,callback){
var ajaxObj;
if (defMessage) document.getElementById(obj).innerHTML=defMessage;
if(window.XMLHttpRequest){
ajaxObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
ajaxObj.open ((post?'POST':'GET'), url);
if (post&&ajaxObj.setRequestHeader)
ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8;");
ajaxObj.onreadystatechange = ajaxCallBack(obj,ajaxObj,(callback?callback:null));
ajaxObj.send(post);
return false;
}
function updateObj(obj, data, bold, blink){
if(bold)data=data.bold();
if(blink)data=data.blink();
document.getElementById(obj).innerHTML = data;
}
function ajaxCallBack(obj, ajaxObj, callback){
return function(){
if(ajaxObj.readyState == 4){
if(callback) if(!callback(obj,ajaxObj))return;
if (ajaxObj.status==200)
updateObj(obj, ajaxObj.responseText);
else updateObj(obj, ajaxObj.status+' '+ajaxObj.statusText,1,1);
}
}}
</script>