Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ajax запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помочь с работой
Flash_PR
Отправлено: 23 Апреля, 2014 - 11:13:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




Приветствую всех!
Тут пытаюсь разобраться с Ajax, технология простая, но работать никак не получается заставить, может подскажите где ошибка?

index.html
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.         <meta http-equiv="content-type" content="text/html" />
  5.   <script type="text/javascript" src="quickstart.js"></script>
  6.         <title>AJAX и PHP: Quickstart</title>
  7. </head>
  8. <body onload="process()">
  9.         Сервер желает узнать ваше имя:
  10.   <input type = "text" id = "myName" onkeypress="process()"/>
  11.   <div id = "MyId"></div>
  12. </body>
  13. </html>


quickstart.js
CODE (javascript):
скопировать код в буфер обмена
  1. var request = getXmlHttpRequest();
  2. function getXmlHttpRequest()
  3. {
  4.   var xmlhttp;
  5.   try
  6.   {
  7.     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8.   }
  9.   catch (e)
  10.   {
  11.     try
  12.     {
  13.       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  14.     }
  15.     catch (E)
  16.     {
  17.       xmlhttp = false;
  18.     }
  19.   }
  20.  
  21.   if(!xmlhttp && typeof XMLHttpRequest!='undefined')
  22.   {
  23.     xmlhttp = new XMLHttpRequest();
  24.   }
  25.   return xmlhttp;
  26. }
  27.  
  28. /*---------------------------------------------------------------------------*/
  29.  
  30. function process()
  31. {
  32.   // Объект XMLHttpRequest
  33.  
  34.   /*свойство onreadystatechange это обработчик события, которое реагирует
  35.   на любое изменения данного объекта*/
  36.   request.onreadystatechange = HandleServerResponse()
  37.  
  38.   // Адрес серверного скрипта
  39.   //encodeURIComponent
  40.   var name =document.getElementById("myName").value;
  41.   var url = "quickstart.php?name=" + name;
  42.   /* Запрос на сервер, true означает что это асинхронный запрос
  43.   если было бы false то это синхронный запрос*/
  44.   request.open("GET", url, true);  
  45.   request.setRequestHeader("Content-type", "charset=utf8");
  46.   request.send(null); // посыл данных
  47. }
  48.  
  49. function HandleServerResponse()
  50. {
  51.   /*свойство readyState - состояние объекта            
  52.   0 - не инициализирован
  53.   1 - открыт,
  54.   2 - отправка данных,
  55.   3 - получение данных,  
  56.   4 - данные загружены
  57.   рекомендую использовать только 4*/
  58.   if (request.readyState == 4)
  59.   {
  60.     /*свойство status это HTTP-статус ответа: 200-OK, 404-Not Found*/
  61.     if (request.status == 200)
  62.     {
  63.       var result = document.getElementById("MyId"); // Чтение ответа
  64.       result.firstChild.nodeValue = request.responseText; // Вывод на экран
  65.       //setTimeout('process()', 1000);
  66.     }
  67.     else document.write("Произошла ошибка. Обнови страничку");
  68.   }
  69. }


quickstart.php

PHP:
скопировать код в буфер обмена
  1. <?PHP  
  2. // результаты будем отправлять в формате XML
  3. header("Content-Type: text/html; charset=utf8");
  4.  
  5. // получить имя пользователя
  6. $name = $_GET['name'];
  7. // сгенерировать текст сообщения в зависимости
  8. // от имени пользователя принятого от клиента
  9. $userNames = array('CRISTIAN', 'BOGDAN', 'FILIP', 'MIHAI', 'YODA');
  10. if (in_array(strtoupper($name), $userNames))
  11.   echo 'Здравствуйте, ' . htmlentities($name) . '!';
  12. else if (trim($name) == '')
  13.   echo 'Скажи мне, как зовут тебя, незнакомец!';
  14. else
  15.   echo htmlentities($name) . ', вы мне не знакомы!';
  16. ?>

(Отредактировано автором: 23 Апреля, 2014 - 11:27:06)



-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
IllusionMH
Отправлено: 23 Апреля, 2014 - 11:35:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Flash_PR, и на каком этапе ошибка?
Что в инструментах разрабочика в браузере?
Пишите на сервере в файлик инфу о запросах, чтобы понять что пришло и что ушло.
 
 Top
Flash_PR
Отправлено: 23 Апреля, 2014 - 11:37:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




IllusionMH пишет:
Flash_PR, и на каком этапе ошибка?
Что в инструментах разрабочика в браузере?
Пишите на сервере в файлик инфу о запросах, чтобы понять что пришло и что ушло.


А просто ничего не происходит, подставляю в строку запроса принудительно index.html/quickstart.php?name=sagdfs

выкидывает 404


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
IllusionMH
Отправлено: 23 Апреля, 2014 - 11:41:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Flash_PR, index.html/quickstart.php?name=sagdfs ШТО?
Поставьте / в начале урла и закиньте эти файлы в корень тествого каталога.

(Отредактировано автором: 23 Апреля, 2014 - 11:42:12)

 
 Top
Flash_PR
Отправлено: 23 Апреля, 2014 - 11:53:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




IllusionMH пишет:
Поставьте / в начале урла и закиньте эти файлы в корень тествого каталога.

ставил, не помогает, файлы находятся в одном каталоге

Если что вот где это
http://testflash[dot]zz[dot]mu/

там 2 примера ajax первый работает а второй не хочет при этом.

Есть подозрение, что запрос не отправляется

(Отредактировано автором: 23 Апреля, 2014 - 12:00:10)



-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
esterio
Отправлено: 23 Апреля, 2014 - 12:22:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




перешел по ссилке. ну и где же JavaScript? там его попросту нету
 
 Top
Flash_PR
Отправлено: 23 Апреля, 2014 - 12:28:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




esterio пишет:
перешел по ссилке. ну и где же JavaScript? там его попросту нету


В смысле нет?


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
esterio
Отправлено: 23 Апреля, 2014 - 12:44:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Так просто нету никакого JS на странице той что вы указали выше. Посмотрите сами в инструменте для разработчика
 
 Top
Flash_PR
Отправлено: 23 Апреля, 2014 - 12:57:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




esterio пишет:
Так просто нету никакого JS на странице той что вы указали выше. Посмотрите сами в инструменте для разработчика


Там 2 сылки на примеры ajax

Ajax1-работает
и
Ajax2-НЕ работает


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
IllusionMH
Отправлено: 23 Апреля, 2014 - 13:13:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Flash_PR, проверяйте серверную часть. name отдается на сервер, но в ответ не подставляется.
 
 Top
Flash_PR
Отправлено: 23 Апреля, 2014 - 14:22:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




как то заработал, но все равно немного не так работает. по идее сразу после загрузки должен выдавать сообщение "Скажи мне, как зовут тебя, незнакомец!" т.к. стоит у body в событии onload вызов функциизапроса

И при вводе имени идет запаздывание выводов символов имени.

Еще и в IE не работает

(Отредактировано автором: 23 Апреля, 2014 - 14:23:46)



-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
IllusionMH
Отправлено: 23 Апреля, 2014 - 15:20:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




 
 Top
Flash_PR
Отправлено: 25 Апреля, 2014 - 13:48:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




Разобрался, теперь все работает как надо.

Правда если быстро писать в инпуте, то не успевает обрабатывать в асинхроном режиме.


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
IllusionMH
Отправлено: 25 Апреля, 2014 - 14:12:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Flash_PR, как вариант используется clearTimeout/setTimeout и запрос отправляется только если пользователь не печатает 300-500+ мс
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB