Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > проблема с AJAX,


Автор: Fubu_By 17.1.2008, 12:08
есть скрипт который возввращает данные ввиде xml:
Код

<?

        Header("Content-type: text/xml");
        echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
        $connect = mysql_connect('localhost', 'root', 'root');
        if($connect)
        {
            mysql_select_db('imesh_users', $connect);
            $query = "select `ID`,`Email`,`Nickname` from `users`  order by id asc limit 20;";

            //echo $query;
            $result = mysql_query($query, $connect);
            if($result!==false && mysql_num_rows($result)>0)
            {
                echo '<SearchUsersResponse><Users>';
                while($row = mysql_fetch_assoc($result))
                {
                    echo '<User>';
                    echo '<ID>'.$row['ID'].'</ID>';
                    echo '<Nickname><![CDATA['.$row['Nickname'].']]></Nickname>';
                    echo '<Email><![CDATA['.$row['Email'].']]></Email>';
                    echo '<UserImage>/images/' . $row['ID'] . '.jpg</UserImage>';
                    echo '</User>';
                }
                echo '</Users></SearchUsersResponse>';
                exit;
            }
        }

?>


есть ajax скрипт который его обрабатывает
Код

var req;
var reqTimeout;

function loadXMLDoc(url) {
    req = null;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                req = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }

    if (req) {
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
        reqTimeout = setTimeout("req.abort();", 5000);
    } else {
        alert("Браузер не поддерживает AJAX");
    }
}

function processReqChange() {


    if (req.readyState == 4) {
        clearTimeout(reqTimeout);

        if (req.status == 200) {
         response = req.responseXML.documentElement;
         Nickname = response.getElementsByTagName('Nickname') \\
            [0].firstChild.data;
            Email = response.getElementsByTagName('Email') \\
            [0].firstChild.data;

            document.getElementById("resp").innerHTML = Nickname;
        } else {
            alert("Не удалось получить данные:\n" + req.statusText);
        }
    }
}

function stat(n)
{
  switch (n) {
    case 0:
      return "не инициализирован";
    break;

    case 1:
      return "загрузка...";
    break;

    case 2:
      return "загружено";
    break;

    case 3:
      return "в процессе...";
    break;

    case 4:
      return "готово";
    break;

    default:
      return "неизвестное состояние";
  }
}

function requestdata(params)
{
  loadXMLDoc(params);
}


проблема в том что у меня не получаеться взять значения из xml. Посмотрите строка 37-44 что я наморозил?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)