Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2009, 21:39
Аспирант
Отправить личное сообщение для sc2r2bey Посмотреть профиль Найти все сообщения от sc2r2bey
 
Регистрация: 27.06.2009
Сообщений: 60

AJAX для ЧАЙНИКОВ (вопросы)
После дебатов в одном из своих постов начал изучать AJAX, в целом все предельно просто и понятно, но по ходу появляются вопросы, онтветы на которые буду задавать здесь в надежде получить на них ответы, заранее спасибо!

1. вопрос - в материалах звучат такие понятия как объекты, экземпляры, методы и свойства. я так понял это их ООП, кто смог бы на пальцах объяснить что эти поняти означают или дать ссылку на статью, где на пальцах объясняют, что это такое ))
2. вопрос - есть ли универсальный способ вызова объекта XMLHttpRequest, который работает во всех браузерах, пока нашел вото этот:
Код:
<script language="javascript" type="text/javascript">
var request = false;
try {
	request = new XMLHttpRequest();
	} catch (trymicrosoft) {
	  try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
		  } catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
			  request = false;
			}
		}
	}
if (!request)
	alert("Error initializing XMLHttpRequest!");
</script>
пока все вызревает ряд вопросов, ограничусь пока этим.
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2009, 21:51
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от sc2r2bey
что эти поняти означают
Прочтите какую-нибудь книжку по программированию, это базовые понятия, без знания и понимания которых, далеко не уедешь.

Сообщение от sc2r2bey
вопрос - есть ли универсальный способ вызова объекта XMLHttpRequest, который работает во всех браузерах, пока нашел вото этот
Сейчас можно использовать более простой вариант:
var request  = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2009, 09:58
Аспирант
Отправить личное сообщение для sc2r2bey Посмотреть профиль Найти все сообщения от sc2r2bey
 
Регистрация: 27.06.2009
Сообщений: 60

Сообщение от Octane Посмотреть сообщение
Сейчас можно использовать более простой вариант:
var request  = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
почему?
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2009, 13:14
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Браузеры без поддержки XMLHttpRequest (Opera 7) не беруться во внимание, а про ActiveXObject обсуждение здесь.
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2009, 18:18
Аспирант
Отправить личное сообщение для sc2r2bey Посмотреть профиль Найти все сообщения от sc2r2bey
 
Регистрация: 27.06.2009
Сообщений: 60

в общем начал изучать материал, в целом понятно, что не может не радовать, много надо будет изучить, взял почти готовый код, разобрал что по чем, но возникло ряд вопросов и ошибок, сам код потом вопросы ))
Код:
<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Изучаем AJAX</title>

<script language="javascript" type="text/javascript">
    var request = false;
    try {
        request = new XMLHttpRequest();
            } catch (trymicrosoft) {
            try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (othermicrosoft) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (failed) {
                request = false;
                }
        }
    }
    if (!request)
       alert("Error initializing XMLHttpRequest!");

    function getCustomerInfo() {
        var phone = document.getElementById("phone").value;
        var url = "/include/xtr.php?phone=" + escape(phone);
        request.open("GET", url, true);
        request.onreadystatechange = updatePage;
        request.send(null);
    }

    function updatePage() {
        if (request.readyState == 4) {
            if (request.status == 200) {
                var response = request.responseText.split("|");
                document.getElementById("order").value = response[0];
                document.getElementById("address").innerHTML = response[1].replace(/\n/g, " ");
            } else
                alert("status is " + request.status);
        }
    }
</script>
</head>
<body>
    <form action="POST">
        <p>Enter your phone number:
        <input type="text" size="14" name="phone" id="phone"
        onChange="getCustomerInfo();" />
        </p>
        <p>Your order will be delivered to:</p>
        <div id="address"></div>
        <p>Type your order in here:</p>
        <p><textarea name="order" rows="6" cols="50" id="order"></textarea></p>
        <p><input type="submit" value="Order Pizza" id="submit" /></p>
    </form>
</body>
</html>
Вопрос 1. не подгружает введенные данные, т.е. не работает, а переходит по ссылке http://xhr/POST?phone=999999999999&order=blablabla
в чем может быть ошибка?

Вопрос 2. как можно оптимизировать сей код после исправления ошибки?

Вопрос 3. где можно глубже изучить метод getElementById() ?

Вопрос 4. как происходит в данном случае обмен данными между javascript и php

Вопрос 5. как подставляется url в форму?

Думаю достаточно, спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 04.07.2009, 02:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

1) http://javascript.ru/tutorial/events
http://htmlbook.ru/html/form.html
2) это к Riim'у а вообще почитай
http://xmlhttprequest.ru
http://javascript.ru/ajax
3) http://javascript.ru/tutorial/dom
4) в каком данном? Который не работает?
5) право, мне тоже интересно
Ответить с цитированием
  #7 (permalink)  
Старый 04.07.2009, 02:36
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от x-yuri
это к Riim'у а вообще почитай
Я уже ему отвечал на этот вопрос. Только на другом форуме.
Ответить с цитированием
  #8 (permalink)  
Старый 04.07.2009, 02:56
Аспирант
Отправить личное сообщение для sc2r2bey Посмотреть профиль Найти все сообщения от sc2r2bey
 
Регистрация: 27.06.2009
Сообщений: 60

document.getElementById("address").innerHTML = response[1].replace(/\n/g, " ");
здесь ошибка
Ответить с цитированием
  #9 (permalink)  
Старый 04.07.2009, 03:03
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

sc2r2bey,
уже дважды было написано, что xtr.php должен возвращать строку содержащую символ "|".
Ответить с цитированием
  #10 (permalink)  
Старый 04.07.2009, 03:21
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Riim, нужен третий, контрольный, не промахнись
p.s. сорри за злой юмор
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кросс-браузерные функции B~Vladi Ваши сайты и скрипты 128 01.09.2009 17:11
AJAX и history браузера Shasoft jQuery 5 25.06.2009 16:22
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12
AJAX Выбор Страна - Регион - Город - Метро Jumong Общие вопросы Javascript 4 12.10.2008 02:19