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

  • Автор темы hardigun
  • Дата начала
H

hardigun

#1
Есть три файлика(ниже) всё как завещал дедушка Ленин. Задача в том, чтобы при вводе пользователем текста в поле ввода он отправлялся серверу, сравнивался с некоторым значением и результат выводился в 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 "Я тебя не наю!";

?>
 
H

hardigun

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