Подскажите почему
alert(req.responseText)
работает, а
statusElem.innerHTML = req.responseText
выдает пустую строчку?
<script type="text/javascript">
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// javascript-код голосования из примера
function vote() {
// (1) создать объект для запроса к серверу
var req = getXmlHttp()
// (2)
// span рядом с кнопкой
// в нем будем отображать ход выполнения
var statusElem = document.getElementById('vote_status')
req.onreadystatechange = function() {
// onreadystatechange активируется при получении ответа сервера
if (req.readyState == 4) {
// если запрос закончил выполняться
// statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)
statusElem.innerHTML = req.responseText;
if(req.status == 200) {
// если статус 200 (ОК) - выдать ответ пользователю
statusElem.innerHTML = req.responseText;
alert("Ответ сервера: "+req.responseText);
}
}
}
// (3) задать адрес подключения
//req.open('GET', 'vote.php', true);
req.open('GET', 'test.php?city=niko', true);
// объект запроса подготовлен: указан адрес и создана функция onreadystatechange
// для обработки ответа сервера
// (4)
req.send(null); // отослать запрос
// (5)
statusElem.innerHTML = 'Ожидаю ответа сервера...'
}
</script>
<input onkeyup="vote()" type="text" />
<div id="vote_status">Здесь будет ответ сервера</div>
$loginmysql='***';
$passwordmysql='***';
$dbmysql='testtable';
$hostmysql='localhost';
mysql_connect($hostmysql, $loginmysql, $passwordmysql);
mysql_select_db($dbmysql);
if(!isset($_GET['city'])){
}elseif(empty($_GET['city'])) die('пусто');
else{
$city=trim(urldecode($_GET['city']));
$city1=@iconv("UTF-8", "windows-1251//IGNORE",$city); // все AJAX запросы приходят в Юникоде
if($city1)$city=$city1; // на случай если на Windows-машине
$city=addslashes($city);
$res = mysql_query('SELECT * FROM stake WHERE LOWER(name) LIKE CONCAT("'.strtolower($city).'","%") LIMIT 5');
header('Content-Type: text/html');
while($row = mysql_fetch_array($res)){
echo "<option value='" . $row['name'] . "'>" . $row['name']."</option>\n";
//echo $row['name'];
}
mysql_close();
die;
}