Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2011, 10:00
Новичок на форуме
Отправить личное сообщение для plavv Посмотреть профиль Найти все сообщения от plavv
 
Регистрация: 17.06.2011
Сообщений: 4

Вопрос по работе responseText
Подскажите почему
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;
}
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2011, 10:24
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Видимо потому что Вы вызываете
var statusElem = document.getElementById('vote_status')
раньше чем элемент
<div id="vote_status">Здесь будет ответ сервера</div>
появляется в документе. Напишите скрипт после html, либо используйте onload.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по работе ajax/ 0931454574 AJAX и COMET 1 03.04.2011 14:54
Вопрос по работе функций в PHP bayah Серверные языки и технологии 2 12.02.2011 17:42
Вопрос по работе с плагином Fancybox dr_fucker jQuery 1 03.11.2010 11:53
вопрос о responseText vasya37 AJAX и COMET 5 10.10.2010 20:46
вопрос о работе getElementById(id) gosha_kap Общие вопросы Javascript 1 17.07.2009 07:23