Уже сколько времени не могу разобраться с XMLHttpRequest, а именно не получается отправить запрос на сервер или обработать ответ Ни 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 разобрался
у тебя переменные name surname в JavaScript-e ничему не равны, а так вроде скрипт рабочий
у тебя переменные name surname в JavaScript-e ничему не равны, а так вроде скрипт рабочий
Спустя 6 минут, 47 секунд (26.12.2009 - 20:01) John_761 написал(а):
Код писал прямо тут, теги head, doctype, body опущены.
Так все равно запрос не идет в любом виде и ответа никакого, в любом случае должна выполниться print_r($_POST) и распечатать его пустым?
Так все равно запрос не идет в любом виде и ответа никакого, в любом случае должна выполниться 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
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 написал(а):
Разобрался
Теперь понять бы как частично обработать результат ответа. К примеру я пишу
Но выводит всю страничку, полностью, в тэг, а хотелось бы выводить только определенное значение. Например, есть 3 поля, в первые два мы вводим числа, а в 3е по нажатию кнопки выводит их сумму. Думаю здесь как то связано с DOMом, но придется работать с XML форматом ? Хотя AJAX и есть по сути Java + XML
Кто что может подсказать ? В каком направлении двигаться ?
Теперь понять бы как частично обработать результат ответа. К примеру я пишу
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.
Чувствую себя немного дубом
Ответ скрывался за параметром url и в нахождении php скрипта. Он был на той же странице, следовательно возвращался целый документ, с head etc. Вынеся скрипт на другую страничку, получил то, что нужно.
А в первом посте ошибка и вправду была в неинициализированных переменных в строке postSend, дальнейший код после нее вообще не выполнялся. А я понадеялся на JS, что он сам определит их и даст значение NULL.
Чувствую себя немного дубом
Спустя 2 дня, 16 часов, 17 минут, 25 секунд (29.12.2009 - 18:17) NewBePhp написал(а):
John_761
не полный у тя скрипт... если работаеш с хмл то обрабатывать надо
не полный у тя скрипт... если работаеш с хмл то обрабатывать надо