[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ajax. Создать запрос.
Ramzil_Nixon
Привет всем.

Помогите пожалуйста! Как создать запрос в сервер с помощью Ajax. Весь инет перекопал, подходящего и понятного не нашел. Может где уроки есть понятно написанные для чайников, или объясните в крадце как создать запрос и принять его?



Спустя 12 минут, 42 секунды (20.11.2011 - 20:55) fire написал(а):
Что там искать ? Материала в сети полно, было бы желание... http://bit.ly/rKc5hL

Спустя 1 минута, 57 секунд (20.11.2011 - 20:56) Ramzil_Nixon написал(а):
Цитата (fire @ 20.11.2011 - 17:55)
Что там искать ? Материала в сети полно, было бы желание...

Я по ajax уроки искал, нечего подходящего для себя не нашел

Спустя 2 минуты, 10 секунд (20.11.2011 - 20:59) Гость_Greg1978 написал(а):
function GetHtml(fileName)
{
function _getXMLHTTP() { //fuction to return the xml http object
var xmlhttp = false;
try {
xmlhttp = new XMLHttpRequest();
}
catch(e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}

catch(e1) {
xmlhttp = false;
}
}
}


return xmlhttp;
}

var xmlhttp = _getXMLHTTP();
// false - синхронно
xmlhttp.open('GET', "http://" + window.location.hostname + "/"+ fileName , false);
xmlhttp.send(null);

if (xmlhttp.status == 200) {
return xmlhttp.responseText;
}
return "";
}



 ! 

М
А пхп-тегами я должен за тебя оформлять?
inpost

Спустя 4 минуты, 6 секунд (20.11.2011 - 21:03) inpost написал(а):
http://javascript.ru/ajax
И тут тоже норм написано:
http://www.akvi.ru/ajax.html

Если что, показывай код.

Спустя 2 минуты, 34 секунды (20.11.2011 - 21:05) Guest написал(а):
Цитата
А пхп-тегами я должен за тебя оформлять?

Нет не Вы сори пропустил но уже для гостей не редактируется.

Спустя 2 минуты, 39 секунд (20.11.2011 - 21:08) Ramzil_Nixon написал(а):
Гость_Greg1978
inpost, спасибо, если что-то не так будет, спрошу

Спустя 1 минута, 1 секунда (20.11.2011 - 21:09) inpost написал(а):
Guest
Будь внимателен, или создай себе левый аккаунт, чтобы не пропускать.

Спустя 4 минуты, 3 секунды (20.11.2011 - 21:13) Ramzil_Nixon написал(а):
inpost, я читал в одном блоке что Ajax служить только для отправки и принятия данных с клиента на сервер, это правда?

Спустя 1 минута, 8 секунд (20.11.2011 - 21:14) inpost написал(а):
Ramzil_Nixon
Ну да, ничего более smile.gif

Спустя 1 минута, 16 секунд (20.11.2011 - 21:15) Guest написал(а):
Цитата (inpost @ 20.11.2011 - 18:09)
Guest
Будь внимателен, или создай себе левый аккаунт, чтобы не пропускать.

Не хочется умничать.

Спустя 57 секунд (20.11.2011 - 21:16) Ramzil_Nixon написал(а):
inpost, тьфу балин!))) 3 дня изучаю, понять не могу принцип работы.

Спустя 5 минут, 15 секунд (20.11.2011 - 21:22) KonstantinK написал(а):
Ramzil_Nixon
Вот у twin http://irbis-team.com/15/13?PHPSESSID=9657...f2e513b47e705c3 почитай

Спустя 5 минут, 47 секунд (20.11.2011 - 21:27) Ramzil_Nixon написал(а):
inpost
я вот этот часть не понимаю:

function getXmlHttp(){
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (ee) {
}
}
if (typeof XMLHttpRequest!='undefined') {
return new XMLHttpRequest();
}
}


http://javascript.ru/ajax/transport/xmlhttprequest

Сколько уроков уже перекопал, нигде не прокомментирован что ээтот часть делает, или не обязательно знать?

Спустя 2 минуты, 34 секунды (20.11.2011 - 21:30) Guest написал(а):
Кроссбраузерное использование com компонента для работы с XMLHttpRequest

Спустя 1 минута, 37 секунд (20.11.2011 - 21:32) Ramzil_Nixon написал(а):
Guest, то есть просто пожно скопировать этот часть кода и все да? Больше ничего?



Спустя 3 минуты, 59 секунд (20.11.2011 - 21:36) inpost написал(а):
Ramzil_Nixon
Да, просто копируй. Это, чтобы во всех браузерах работало.

Спустя 9 минут, 27 секунд (20.11.2011 - 21:45) Ramzil_Nixon написал(а):
inpost, понятно, спасибо smile.gif

Но все же хотелось бы что она именно делает. Любопытство грызет как говориться smile.gif

Спустя 4 минуты (20.11.2011 - 21:49) VolDroN написал(а):
Непонятно наверно из-за try/catch. 'Это что то на подобие такого:


xmlhttp = new XMLHttpRequest();
if(!xmlhttp)
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

if(!xmlhttp)
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

if(!xmlhttp)
return false;



upd создаёт объект на котором весь аякс и держится.
Т.к. этот класс для разных браузеров разный (точнее IE просит свой класс, причём для старых версий он другой %)).

Этот код просто пытается создать сначала один класс, если он не создался - значит пользователь сидит скорее всего под IE, js создаёт объект другого класса, если он не создался, то ещё одного класса, для старых версий IE. Если не создался не один объект, то возвращается false (скорее всего пользователь сидит или со старого телефона или под каким то кустарным браузером)

Спустя 3 минуты, 47 секунд (20.11.2011 - 21:53) Ramzil_Nixon написал(а):
VolDroN, вот теперь более менее. То есть можно и так писать да?

Спустя 4 минуты, 8 секунд (20.11.2011 - 21:57) VolDroN написал(а):
ну да.

вот код по красивее (с ирбиса):


function Create()
{
if(navigator.appName == "Microsoft Internet Explorer")
req = new ActiveXObject("Microsoft.XMLHTTP");
else
req = new XMLHttpRequest();

return req;
}

Спустя 11 минут, 30 секунд (20.11.2011 - 22:08) Guest написал(а):
Цитата (VolDroN @ 20.11.2011 - 18:57)
ну да.

вот код по красивее (с ирбиса):


function Create()
{
if(navigator.appName == "Microsoft Internet Explorer")
req = new ActiveXObject("Microsoft.XMLHTTP");
else
req = new XMLHttpRequest();

return req;
}

Лаконичность не всегда есть красота.
Ох и не нравятся мне не закрытые блоки условий, в будущем может быть косяк.

Спустя 2 минуты, 49 секунд (20.11.2011 - 22:11) Ramzil_Nixon написал(а):
Цитата (Guest @ 20.11.2011 - 19:08)
Ох и не нравятся мне не закрытые блоки условий, в будущем может быть косяк.

Без надобности не обязательно ставить скобки

Спустя 2 часа, 2 минуты, 15 секунд (21.11.2011 - 00:13) Ramzil_Nixon написал(а):
Я тут написал, точнее пробовал написать:

<html>
<head>
<title>
Ajax-тесты</title>
<script
type="text/javascript">
function
getXmlHttp()
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (ee)
{
}
}

if (typeof XMLHttpRequest!='undefined')
{
return new XMLHttpRequest();
}
}

function goajax()
{
var start = getXmlHttp(); // Создаем отправку на сервер
var inc = document.getElementById('incontent'); // Это у нас будет отображать ход выполнения
start.onreadystatechange = function()
{
if(start.ReadyState == 4)
{
inc.innerHTML = start.statusTxt;
if(srart.status == 200)
{
alert(start.responseText);
}
}
}

srart.open('GET', 'include.php', true); // Запрос подготовлен
start.send(null); // Отправляем запрос в сервер
inc.innerHTML = 'Ждем ответа сервера';
alert('Передача данных');
}
</script>
</head>
<body>
<a
href="#" onClick="goajax()">Загрузить</a>
<div
id="incontent">Здесь будет наша страница</div>
</body>
</html>



Обращается к серверу include.php, он сожержить всего пару строк:

<?php
echo 'Hello World';
?>

Ну у меня что то не хочет работать...

Спустя 6 часов, 8 минут, 43 секунды (21.11.2011 - 06:22) inpost написал(а):
Ramzil_Nixon
2 ошибки:
1) Сначала надо ОТПРАВИТЬ, а потом проверять статус отправленного (логично подумай, как ты можешь проверить статус ещё не отправив данные!!!)
2) Грамматическая ошибка. Давай я сразу показывать не буду, ты сам найди её, если найдешь не ту, про которую я говорю - ищи больше.

Есть самая простая проверка: После каждой логической строчки в JS писать alert smile.gif Тогда ты увидишь, то какого места дошел твой скрипт. JS как работает? Строчку за строчкой, если какая-то строчка окажется кривой - он на ней и остановит работу, выполнив всё предыдущее, но последующее не будет.

Спустя 1 час, 8 минут, 32 секунды (21.11.2011 - 07:31) Ramzil_Nixon написал(а):
Цитата
1) Сначала надо ОТПРАВИТЬ, а потом проверять статус отправленного (логично подумай, как ты можешь проверить статус ещё не отправив данные!!!)


Просто я делал так как на javascript.ru показано, smile.gif

Спустя 12 минут, 46 секунд (21.11.2011 - 07:44) Ramzil_Nixon написал(а):
Ну я тоже про первый пункт подумал сначало, но делал все так как там на сайте было :D

Ну вроде ошибку нашел:

<script type="text/javascript">
function
getXmlHttp()
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (ee)
{
}
}

if (typeof XMLHttpRequest!='undefined')
{
return new XMLHttpRequest();
}
}

function goajax()
{
var start = getXmlHttp(); // Создаем отправку на сервер
var inc = document.getElementById('incontent'); // Это у нас будет отображать ход выполнения
srart.open('POST', 'include.php', true); // Запрос подготовлен
start.send(null); // Отправляем запрос в сервер
start.onreadystatechange = function()
{
if(start.ReadyState == 4)
{
inc.innerHTML = start.statusTxt;
if(srart.status == 200)
{
alert(start.responseText);
}
}
}

inc.innerHTML = 'Ждем ответа сервера';
}
</scropt>


Ошибка по моему здесь.

alert именно здесь обрывается.
srart.open('POST', 'include.php', true); // Запрос подготовлен

Спустя 2 часа, 52 минуты, 7 секунд (21.11.2011 - 10:36) Ramzil_Nixon написал(а):
Ошибки нашел, исправил,

Теперь появилась следующая.

alert('Все работает '+inc.responseText);


Вот тут должна вывести Все работает и текст, которая содержиться на include.php. А у меня вызодит: Все работает undefined где я опять ошибся?

Спустя 48 минут, 33 секунды (21.11.2011 - 11:24) McLotos написал(а):

Спустя 14 минут, 40 секунд (21.11.2011 - 11:39) Ramzil_Nixon написал(а):
Там говориться про сравнение, не совесем понял

Спустя 1 минута, 51 секунда (21.11.2011 - 11:41) inpost написал(а):
Ты ошибку не исправил.
В начале ты инициализировал объект в переменную, а потом из 3-х строчек в одной у тебя грамматическая ошибка. smile.gif Ты даже строчку показал, читай внимательнеее....

Спустя 8 минут, 23 секунды (21.11.2011 - 11:49) Ramzil_Nixon написал(а):
inpost
	var inc = document.getElementById('incontent'); // Это у нас будет отображать ход выполнения
start.open('GET', 'include.php', true); // Запрос подготовлен
start.send(null); // Отправляем запрос в сервер


В этих? :)

Спустя 39 минут, 38 секунд (21.11.2011 - 12:29) inpost написал(а):
Ну ты же сам написал .что именно тут.

Спустя 6 минут, 45 секунд (21.11.2011 - 12:35) Ramzil_Nixon написал(а):
Цитата (inpost @ 21.11.2011 - 09:29)
Ну ты же сам написал .что именно тут.


А те ошибки я исправил, там просто был опечаток.

На сервер ссылаю запрос, там есть задержка sleep(3); значить работает у меня отпарвка. Вот только обратно то что на echo написано, не принимает.


start.onreadystatechange = function()
{
if(start.readyState == 4)
{
inc.innerHTML = '100% завершено';
if(start.status == 200)
{
alert('Все работает '+inc.responseText);
}
}
}

Значить ошибка вот тут должна быть

Спустя 5 часов, 3 минуты, 23 секунды (21.11.2011 - 17:39) Ramzil_Nixon написал(а):
Uuuuuuuuuuuuuuuuuuuuuuuuuuppppppppppppppppppppppp

Спустя 57 минут, 34 секунды (21.11.2011 - 18:36) inpost написал(а):
Ramzil_Nixon
Ты бы целиком показал бы.

Спустя 3 часа, 20 минут, 10 секунд (21.11.2011 - 21:57) Ramzil_Nixon написал(а):
Вот index.php

<html>
<head>
<title>
Ajax-тесты</title>
<script
type="text/javascript">
function
getXmlHttp()
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (ee)
{
}
}

if (typeof XMLHttpRequest!='undefined')
{
return new XMLHttpRequest();
}
}

function goajax()
{
var start = getXmlHttp(); // Создаем отправку на сервер
var inc = document.getElementById('incontent'); // Это у нас будет отображать ход выполнения
start.open('GET', 'include.php', true); // Запрос подготовлен
start.send(true); // Отправляем запрос в сервер
inc.innerHTML = 'Ждем ответа сервера...';
start.onreadystatechange = function()
{
if(start.readyState == 4)
{
inc.innerHTML = 'Передача завершена...';
if(start.status == 200)
{
alert('Все работает '+inc.responseText);
}
}
}
}

</script>
</head>
<body>
<a
href="#" onClick="goajax()">Загрузить</a>
<div
id="incontent">Здесь будет наша страница</div>
</body>
</html>

А это include.php:

<?php
sleep(3); // Задержка
echo '112233'; // Вывод
?>

Спустя 13 минут, 24 секунды (21.11.2011 - 22:10) bodja написал(а):
Цитата
Вот только обратно то что на echo написано, не принимает

Фигня какая,нехороший сервер dry.gif biggrin.gif

start.responseText

Спустя 5 минут, 2 секунды (21.11.2011 - 22:15) Ramzil_Nixon написал(а):
Цитата (bodja @ 21.11.2011 - 19:10)
Фигня какая,нехороший сервер



Как всегда из-за глупости))

Спасибо всегда выручаешь biggrin.gif


_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

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