Решившему проблему зачёт автоматом! :)

Тема в разделе "Web 2.0, AJAX, Ruby, RSS технологии", создана пользователем hardigun, 20 янв 2009.

  1. hardigun

    hardigun Гость

    Есть три файлика(ниже) всё как завещал дедушка Ленин. Задача в том, чтобы при вводе пользователем текста в поле ввода он отправлялся серверу, сравнивался с некоторым значением и результат выводился в div без перезагрузки страницы соответственно. С аяксом работаю совсем ещё мало и почему то это богатство отказывается функционировать должным образом. Объект создаётся, а дальше никакой реакции. Может что установить надо или подправить, подскажите кто может. Заранее огромное спасибо!!!

    index.html

    <!--shcode--><pre><code class='html'><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    <title>AJAX and PHP</title>
    <script type='text/javascript' src='quickstart.js'></script>
    </head>

    <body onload="process()">
    Name:<input type="text" id="myName"/>
    <div id="divMessage"/>
    </body>
    </html>[/CODE]

    quickstart.js

    <!--shcode--><pre><code class='js'>var xmlHttp = createXmlHttpRequestObject();

    function createXmlHttpRequestObject()
    {
    var xmlHttp;
    if(window.ActiveXObject)
    {
    try
    {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e)
    {
    xmlHttp = false;
    }
    }
    else
    {
    try
    {
    xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
    xmlHttp = false;
    }
    }

    if(!xmlHttp) alert("Ошибка создания объекта!");
    else
    {
    alert("Объект успешно создан!");
    return xmlHttp;
    }
    }

    function process()
    {
    if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
    {
    name = encodeURIComponent(document.getElementById("myName").value);
    xmlHttp.open('GET', "quickstart.php?name=" + name, true);
    xmlHttp.onreadystatechange = handleServerResponse;
    xmlHttp.send(null);
    }
    else setTimeout('process()', 1000);
    }

    function handleServerResponse()
    {
    if(xmlHttp.readyState == 4)
    {
    if(xmlHttp.status == 200)
    {
    xmlResponse = xmlHttp.responseXML;
    xmlDocumentElement = xmlResponse.documentElement;
    helloMessage = xmlDocumentElement.firstChild.data;
    document.getElementById("divMessage").innerHTML = '<i>' + helloMessage + '<i>';
    setTimeOut('process()', 1000);
    }
    else alert("Е Г Г О Р! " + xmlHttp.statusText);
    }
    }[/CODE]

    quickstart.php

    Код (PHP):
    <?php

    header('Content-Type=text/xml');
    print("<?xml version='1.0' encoding='windows-1251' standalone='yes'?>");
    print("<response>");
    $name = $_GET['name'];
    $user_names = array('Piter', 'Tom');
    if(in_array($name, $user_names)) echo "Привет друг!";
    else if(trim($name) == '') echo "Бу-ра-ти-но ... "
    else echo "Я тебя не наю!";

    ?>
     
  2. etc

    etc Гость

    дебажить пробуйте.
     
  3. hardigun

    hardigun Гость

    Извиняюсь за тупизм, но чем и как дебажить? B)
     
  4. etc

    etc Гость

    hardigun А так как обычно это делают, вставляют логирование, анализируют ошибки и т.д. ничего сверхестественного.
    Еще можно Firebug на помощь пригласить, или девелоперский тул для ИЕ, вариантов хватает.
     
Загрузка...

Поделиться этой страницей