[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу понять XMLHttpRequest
John_761
Привет.
Уже сколько времени не могу разобраться с XMLHttpRequest, а именно не получается отправить запрос на сервер или обработать ответ sad.gif Ни POST'ом ни GET'ом. Ничего не происходит.
Броузер Chrome
+ работаю с пакетом Denwer
Вот есть такой код:
Свернутый текст

<?php
sleep(1);
if(!empty($_GET))
{
echo "GET\n";
print_r($_GET);
}
elseif(!empty($_POST))
{
echo "POST\n";
print_r($_POST);
}
?>
<script language="JavaScript">
function okey()
{

var request = new XMLHttpRequest();
var postSend = 'name=' + name + '&surname=' + surname;

request.open('POST', 'index.php', true);
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
if (request.status == 200)
alert(request.responseText);
}
//Вобще чтобы что-нибудь вывело
else
alert();

}
request.send(postSend);

}
</script>
<
form action="" method="post">
Name:
<
br/>
<
input type="text" name="name"/>
<
br/>
Surname:
<
br/>
<
input type="text" name="surname"/>
<
input type="button" name="Go" value="Ok" onclick="okey();"/>
</
form>





Спустя 13 минут, 20 секунд (26.12.2009 - 19:54) qpayct написал(а):
тыб для начала с HTML и JavaScript разобрался laugh.gif
у тебя переменные name surname в JavaScript-e ничему не равны, а так вроде скрипт рабочий

Спустя 6 минут, 47 секунд (26.12.2009 - 20:01) John_761 написал(а):
Код писал прямо тут, теги head, doctype, body опущены.
Так все равно запрос не идет в любом виде и ответа никакого, в любом случае должна выполниться print_r($_POST) и распечатать его пустым?

Спустя 39 минут, 10 секунд (26.12.2009 - 20:40) ZSH написал(а):
я еще heder отправляю
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");

new XMLHttpRequest(); в IE не сработает

new ActiveXObject("Microsoft.XMLHTTP"); для IE

Спустя 2 часа, 34 минуты, 7 секунд (26.12.2009 - 23:14) John_761 написал(а):
Разобрался smile.gif
Теперь понять бы как частично обработать результат ответа. К примеру я пишу
document.getElementById("div").innerHTML = request.responseText;

Но выводит всю страничку, полностью, в тэг, а хотелось бы выводить только определенное значение. Например, есть 3 поля, в первые два мы вводим числа, а в 3е по нажатию кнопки выводит их сумму. Думаю здесь как то связано с DOMом, но придется работать с XML форматом ? Хотя AJAX и есть по сути Java + XML
Кто что может подсказать ? В каком направлении двигаться ?

Спустя 2 часа, 45 минут, 46 секунд (27.12.2009 - 02:00) John_761 написал(а):
Вопрос решен, все оказалось элементарно...
Ответ скрывался за параметром url и в нахождении php скрипта. Он был на той же странице, следовательно возвращался целый документ, с head etc. Вынеся скрипт на другую страничку, получил то, что нужно.
А в первом посте ошибка и вправду была в неинициализированных переменных в строке postSend, дальнейший код после нее вообще не выполнялся. А я понадеялся на JS, что он сам определит их и даст значение NULL.
Чувствую себя немного дубом biggrin.gif

Спустя 2 дня, 16 часов, 17 минут, 25 секунд (29.12.2009 - 18:17) NewBePhp написал(а):
John_761
не полный у тя скрипт... если работаеш с хмл то обрабатывать надо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.