Почему код ajax работает в IE, chrome, FireFox5.0, но не работает в FireFox 3? - PullRequest
0 голосов
/ 27 июля 2011

Я получил простой демонстрационный код AJAX из Интернета, который динамически заполняет один список выбора значениями из базы данных. Он содержит html-файл со встроенным AJAX-кодом и PHP-файл.

Проблема в том, что этот код отлично работает в IE, Chrome, FireFox4, но не работает в FireFox3. Пожалуйста, объясните кому-нибудь это и сообщите мне решение. Код следующий для справки

Схема базы данных для таблицы городов выглядит следующим образом

id tinyint(4) primary key not null
city varchar(50)
countryid tinyint(4)

HTML-файл

<html>
<head>
<script type="text/javascript">
function getCity(strURL)
{         
alert("inside getCity function");
//var req = getXMLHTTP(); // function to get xmlhttp object

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    //xmlhttp=new XMLHttpRequest();
    req=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    //xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    req=new ActiveXObject("Microsoft.XMLHTTP");
}

if (req)
{
    req.onreadystatechange = function()
    {
        if (req.readyState == 4) { //data is retrieved from server
            if (req.status == 200) { // which reprents ok status                    
                document.getElementById('citydiv').innerHTML=req.responseText;
            }
            else
            { 
                alert("There was a problem while using XMLHTTP:\n");
            }
        }            
    }        
    //alert(srtURL);
    var sURL="findcity.php?country="+strURL;
    req.open("GET", sURL, true); //open url using get method
    req.send();
}
}
</script>
</head>
<body>
<form method="post" action="" name="form1">
Country : <select name="country" onChange="getCity(this.value)">
<option value="">Select Country</option>
<option value="1">india</option>
<option value="2">usa</option>
</select>
<br />City : <div id="citydiv">
<select name="select">
<option>Select City</option>
 </select>
</div>
</form>
</body>
</html>

PHP-файл

<? 
echo $_GET['country'];
echo "<br>";
$country=intval($_GET['country']);
echo $country;
echo "<br>";
$link = mysql_connect('localhost', 'root', 'mark'); //change the configuration if required
if (!$link) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db('querytest'); //change this if required
$query="select city from city where countryid=$country";
echo "<br>";
echo $query;
echo "<br>";
$result=mysql_query($query);?>
<select name="city">
<option>Select City</option>
<? while($row=mysql_fetch_array($result)) { ?>
   <option value><?=$row['city']?></option>
<? } ?>
</select>

Пожалуйста, помогите мне, друзья, чтобы этот код работал в FireFox 3

1 Ответ

0 голосов
/ 27 мая 2013

Изменить

req.send();

на

req.send(null);
...