Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Основы AJAX 
:(
    Опции темы
crow
Дата 5.12.2007, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.6.2007
Где: Россия->Кислов одск

Репутация: нет
Всего: нет



Здрасте...

Помогите разобраться с эти AJAX.... вроде все просто, но ниче не выходит... Прочитал официальную документацию, сделал как там, ниче не выходит... :((

Объясните что к чему...

к примеру, есть библиотеки XMLHttpRequest и JsHttpRequest, как я понял... Их надо где то брать или они уже есть в браузерах...

Второе:
сделал форму:
Код

<!-- index.html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title>Page</title>
<LINK REL=STYLESHEET TYPE="text/css" HREF="css.css">
<script type="text/javascript" src="js/func.js"></script>
</head>
<body>
<div class="login">
  <div id="logarea">
  <input class="inputbox" type="text" value="Логин" name="login" id="l" /><br/><br/>
  <input class="inputbox" type="password" value="Пароль" name="pass" id="p" /><br/><br/>
  <input class="button" type="submit" value="Войдите" onclick="doLogin('l','p');"/>
  </div>
</div>
</body>
</html>


сделал файл с яваскриптом:
Код

function doLogin(login,pass)
{
     var req = new XMLHttpRequest();
     req.onreadystatechange = function () {
      if (req.readyState == 4) {
            if (req.status == 200) {
                alert(req.responseText);
            } else {
                alert('С запросом возникла проблема.');
            }
        }
     }
     http_request.open('GET', 'js/login.php', true);
     http_request.send( {l: login.value, p: pass.value} );
}


ну и пхп файл:
Код

<?php

  $login = $_GET['l'];
  $pass  = $_GET['p'];

  echo $login.':'.$pass';

?>


Где я фигню написал???  smile 

И еще....

Как реализовать запросы к MySQL, естественно через AJAX...

Заранее спасибо, я понимаю что вопрос ламерский, но всетаки дайте толчек.... smile 
PM MAIL   Вверх
szz
Дата 6.12.2007, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



В-первых создавать XMLHttpRequest(); просто так нельзя, не все браузеры поймут.
Вместо
Код
var req = new XMLHttpRequest();
надо писать
Код
    var req = false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
     try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            req = false;
        }
     }
    @end @*/
    if (!req && typeof XMLHttpRequest != 'undefined') {
        req = new XMLHttpRequest();
    }
    //  теперь нам доступен объект req, во всех поддерживающих браузерах

Во-вторых почему вверху объект называется req, а внизу - http_request????
В 3-x отправляешь ты json объект, а надо простой url список переменных:
Код
req.send("l="+login.value+'&p='+pass.value);

В четвертых - откуда у тебя эти login.value и pass.value взялись? Нету такого. Надо иои по id или через форму брать:
Код
req.send("l="+my_form.login.value+'&p='+my_form.pass.value);

и в html конечно окружи инпуты формой:
Код

<form name=my_form>
  <input class="inputbox" type="text" value="Логин" name="login" id="l" /><br/><br/>
  <input class="inputbox" type="password" value="Пароль" name="pass" id="p" /><br/><br/>
  <input class="button" type="submit" value="Войдите" onclick="doLogin('l','p');"/>
</form>

Примерно так, не тестировал. Для толчка.

Добавлено через 51 секунду
И не уверен что этот req.status надо проверять, я не проверяю, все пашет


--------------------
PM   Вверх
crow
Дата 6.12.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.6.2007
Где: Россия->Кислов одск

Репутация: нет
Всего: нет



szz, 
Спс за помощь.... ))
вроде чета получилось....

тока такой ворос, например есть пхп файл, который нормльно обрабытывается, но если его вызывать через аякс, то выводит один и тот же результат, даже если файл был изменен, когда перезагружаешь браузер (не страницу), то выводит новый результат ну и т.д. ))

Как сделать так чтобы при каждом клике менялся и результат запроса без перезагрузки браузера и страницы??
PM MAIL   Вверх
Wolf1994
Дата 6.12.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 4
Всего: 29



Цитата(crow @  6.12.2007,  12:22 Найти цитируемый пост)

тока такой ворос, например есть пхп файл, который нормльно обрабытывается, но если его вызывать через аякс, то выводит один и тот же результат, даже если файл был изменен, когда перезагружаешь браузер (не страницу), то выводит новый результат ну и т.д. ))

Как сделать так чтобы при каждом клике менялся и результат запроса без перезагрузки браузера и страницы?? 


Возможно, следует добавить изменяемую переменную к запросу, типа текущего времени в миллесекундах.
PM MAIL WWW   Вверх
crow
Дата 6.12.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.6.2007
Где: Россия->Кислов одск

Репутация: нет
Всего: нет



Цитата(Wolf1994 @ 6.12.2007,  13:01)
Цитата(crow @  6.12.2007,  12:22 Найти цитируемый пост)

тока такой ворос, например есть пхп файл, который нормльно обрабытывается, но если его вызывать через аякс, то выводит один и тот же результат, даже если файл был изменен, когда перезагружаешь браузер (не страницу), то выводит новый результат ну и т.д. ))

Как сделать так чтобы при каждом клике менялся и результат запроса без перезагрузки браузера и страницы?? 


Возможно, следует добавить изменяемую переменную к запросу, типа текущего времени в миллесекундах.

и что потом? чего она даст?
PM MAIL   Вверх
bars80080
Дата 6.12.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



не знаю как в аяксе, но  
http://server.ru/reqpage.php?time=012365445 и http://server.ru/reqpage.php?time=012365456
имеют разницу и браузер будет вынужден обновить страницу


Это сообщение отредактировал(а) bars80080 - 6.12.2007, 14:37
PM MAIL WWW   Вверх
crow
Дата 6.12.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.6.2007
Где: Россия->Кислов одск

Репутация: нет
Всего: нет



Цитата(bars80080 @ 6.12.2007,  14:36)
не знаю как в аяксе, но  
http://server.ru/reqpage.php?time=012365445 и http://server.ru/reqpage.php?time=012365456
имеют разницу и браузер будет вынужден обновить страницу

Да все, спс, я разобрался, просто страницы кешировались браузером, решил просто, добавил в пхп файле заголовки об отмене кеширования )))

Но, блин, у меня опять вопрос...  smile 
В IE И FF все работает отлично, а вот в опере ни в какую... как объявлять класс в опере??
код такой:

Код

function doLogin(log, pas) {
                document.getElementById("logarea").innerHTML = "<center><p><br/><br/><img src='loading.gif'/> <br/>подождите...<center>";
                http_request = false;

                if (window.XMLHttpRequest) { // Mozilla, Safari,...
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');
                    }
                } else if (window.ActiveXObject) { // IE
                    try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e) {
                        try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                    }
                }

                if (!http_request) {
                    alert('Giving up :( Cannot create an XMLHTTP instance');
                    return false;
                }
                http_request.onreadystatechange = alertContents;
                http_request.open('GET', 'login.php?l='+log+'&p='+pas, true);
                http_request.send(null);

            }


что изменить?
PM MAIL   Вверх
szz
Дата 6.12.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Мля, я ж тебе написал как делать кроссбраузерный объект, а ты свое пишешь и жалуешься что не пашет...

И.. опера какой версии?


--------------------
PM   Вверх
crow
Дата 7.12.2007, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 1.6.2007
Где: Россия->Кислов одск

Репутация: нет
Всего: нет



Цитата(szz @ 6.12.2007,  20:48)
Мля, я ж тебе написал как делать кроссбраузерный объект, а ты свое пишешь и жалуешься что не пашет...

И.. опера какой версии?

Я понимаю что ты написал, но то что ты написал, у меня не работает вообще.... :( хз почему, то что написал выше, работает и в IE и в FF, а в опере не пашет....

Опера 9.24....

В аттаче выложу все файлы, если посмотрите и скажите где я ошибся, буду благодарен, спасибо!

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  www.zip 2,99 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.