Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: AJAX для ЧАЙНИКОВ (вопросы)
 
 автор: Bvz   (30.06.2009 в 21:35)   письмо автору
 
 

После дебатов в одном из своих постов начал изучать 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>

пока все вызревает ряд вопросов, ограничусь пока этим.

  Ответить  
 
 автор: neokortex   (01.07.2009 в 18:48)   письмо автору
 
   для: Bvz   (30.06.2009 в 21:35)
 

не стал вглядываться в ваш код, но мой у меня работает везде

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!");

тоже самое/ код универсальный

  Ответить  
 
 автор: Bvz   (01.07.2009 в 22:27)   письмо автору
 
   для: neokortex   (01.07.2009 в 18:48)
 

а если вглядеться, то вы скопировали мой код )))

  Ответить  
 
 автор: PAT   (02.07.2009 в 00:15)   письмо автору
 
   для: Bvz   (01.07.2009 в 22:27)
 

1. http://www.mkgt.ru/files/material-static/423/js/0106.htm

2. Программисты Гугля используют следующий код:
google.xhr = function () {
var a = null;
if (window.XMLHttpRequest) try {a = new XMLHttpRequest} catch (c) {}
else if (window.ActiveXObject)
for (var d = 0, b; b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"] [d++];)
try {a = new ActiveXObject (b); break} catch (c) {}
return a};

  Ответить  
 
 автор: Bvz   (03.07.2009 в 18:19)   письмо автору
 
   для: PAT   (02.07.2009 в 00:15)
 

в общем начал изучать материал, в целом понятно, что не может не радовать, много надо будет изучить, взял почти готовый код, разобрал что по чем, но возникло ряд вопросов и ошибок, сам код потом вопросы ))
<!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 в форму?

Думаю достаточно, спасибо!

  Ответить  
 
 автор: Николай2357   (03.07.2009 в 22:26)   письмо автору
 
   для: Bvz   (03.07.2009 в 18:19)
 

-

  Ответить  
 
 автор: Николай2357   (03.07.2009 в 22:27)   письмо автору
 
   для: Bvz   (03.07.2009 в 18:19)
 

Вот

  Ответить  
 
 автор: Bvz   (04.07.2009 в 00:12)   письмо автору
 
   для: Николай2357   (03.07.2009 в 22:27)
 

пасиб!

  Ответить  
 
 автор: Дмитрий Смаль   (10.07.2009 в 19:42)   письмо автору
 
   для: Николай2357   (03.07.2009 в 22:27)
 

спасибо за ссылку

только вот такой вопрос:

там то что передается скрипту обозначено id='myid'
<input id='myid' >


мне нужно чтобыло много id
например
<form method="post" action="ghjh">
    <input id='myid' ><br>
    <input type="button" value="enter" onClick="Start(myid)">
</form>

<form method="post" action="ghjh">
    <input id='x' ><br>
    <input type="button" value="enter" onClick="Start(x)">
</form>


тоесть мне надо чтобы через функцию Start() передавалось какой именно id

полез в код джавы
function Start(myid) { 
    var query; 
    query ='txt='+encodeURIComponent(document.getElementById(myid).value);
    Request(query);
}


но так оно не работает, я слабо понимаю джаву

что мне надо поменять, чтобы можно было через функцию Start() вставить в document.getElementById('myid')
нужный мне id
??
спасибо

  Ответить  
 
 автор: PAT   (10.07.2009 в 20:15)   письмо автору
 
   для: Дмитрий Смаль   (10.07.2009 в 19:42)
 

onClick="Start ('x')"> 

  Ответить  
 
 автор: Дмитрий Смаль   (10.07.2009 в 22:32)   письмо автору
 
   для: PAT   (10.07.2009 в 20:15)
 

спасибо, проблема в кавычках была

надо onClick="Start('myid')" - с кавычками
а в скрипте без кавычек
function Start(myid) { 
    var query; 
    query ='txt='+encodeURIComponent(document.getElementById(myid).value);
    Request(query);
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования