Slam
Новичок
Чтение и обработка ответа от сервера?
Здравствуйте!
Возникла не понятная проблема при использовании AJAX.
Суть.
Есть некая форма. Естественно, нужно ее проверить. Пользователь вводит данные и по переходу на следующее поле, предыдущее проверяется методом onblur="validate(this.value, this.id)"
Сервер формирует ответ в формате XML.
И в соответствии с ответом, который вернул сервер, на странице происходит вывод сообщений об ошибке или его сокрытие.
Ответ читаю следующим образом.
Но при этом происходит следующая ошибка.
Подскажите, пожалуйста, в чем проблема.
Здравствуйте!
Возникла не понятная проблема при использовании AJAX.
Суть.
Есть некая форма. Естественно, нужно ее проверить. Пользователь вводит данные и по переходу на следующее поле, предыдущее проверяется методом onblur="validate(this.value, this.id)"
Сервер формирует ответ в формате XML.
PHP:
$response =
'<?xml version="1.0" encoding="utf-8" standalone="yes"?>' .
'<response>' .
'<result>' .
$shop_customer->validate_AJAX($_POST['inputValue'], $_POST['fieldID']) .
'</result>' .
'<fieldid>' .
$_POST['fieldID'] .
'</fieldid>' .
'</response>';
if(ob_get_length()) ob_clean();
header('Content-Type: text/xml');
echo $response;
exit();
Ответ читаю следующим образом.
Код:
function readResponse()
{
var response = xmlHttp.responseText;
if (response.indexOf("ERRNO") >= 0
|| response.indexOf("error:") >= 0
|| response.length == 0)
throw(response.length == 0 ? "Server error." : response);
// чтение ответа в XML
responseXml = xmlHttp.responseXML;
xmlDoc = responseXml.documentElement;
result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
fieldID = xmlDoc.getElementsByTagName("fieldid")[0].firstChild.data;
// поиск HTML елемента и отображение ошибки
message = document.getElementById(fieldID + "_failed");
// показать / спратать ошибку
message.className = (result == "0") ? "error" : "hidden";
// вызов проверки
setTimeout("validate();", 500);
}
Код:
Error encountered:
[Error:
name: TypeError
message: Statement on line 149: Could not convert undefined or null to object
Backtrace:
Line 149 of linked script [url]http://www.some.host.ua/shop/js/validate.js[/url]
result = (xmlDoc.getElementsByTagName("result"))[0].firstChild.data;
Line 118 of linked script [url]http://www.some.host.ua/shop/js/validate.js[/url]
readResponse();
At unknown location
[statement source code not available]
]