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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: ищу простой пример ajax
ezha
Отправлено: 19 Ноября, 2010 - 12:44:23
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2010  


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




замучился уже искать, где скачать маленький, без наворотов, РАБОЧИЙ пример ajax+php+mysql без подключения сторонних библиотек типа jquery, просто нужно передать парочку полей из формы, без перезагрузки страницы, но везде чего-то не хватает, везде надо дописывать, додумывать, а хотелось бы разбираться на готовом примере
 
 Top
Uchkuma
Отправлено: 19 Ноября, 2010 - 13:04:30
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Самый маленький ajax без jquery здесь кроссбраузерный AJAX.
 
 Top
JustUserR
Отправлено: 19 Ноября, 2010 - 19:36:02
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




ezha пишет:
Просто нужно передать парочку полей из формы, без перезагрузки страницы
Оптимальным вариантом для обеспечения динамической передачи информационный полей из заполняемой пользователем формы в статической HTML-странице - является использование управляющего JS-кода и транспортного Iframe-элемента для обеспечения непосредственного запроса к целевому ресурсу При использовании такой схемы осуществление запроса осуществляется автоматически при указание target-аттрибута у исходной формы - в то время как возможности JS-скриптинга используются для определительной обработки событий загрузки iframe-элемента


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
koras
Отправлено: 20 Ноября, 2010 - 01:16:11
Post Id



Частый гость


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


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




Вы бы сперва узнали что такое php и mysql, потом брались за ajax и JS
 
 Top
Ammy
Отправлено: 20 Ноября, 2010 - 07:03:29
Post Id



Частый гость


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


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




JS: XMLHttpRequest, eval('('+json+')'), PHP: json_encode(array)

Простенький пример:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. // Кроссбраузерное получение объекта для осуществления запросов
  4.  
  5. function getXmlHttp(){
  6.   var xmlhttp;
  7.   try {
  8.     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  9.   } catch (e) {
  10.     try {
  11.       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  12.     } catch (E) {
  13.       xmlhttp = false;
  14.     }
  15.   }
  16.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  17.     xmlhttp = new XMLHttpRequest();
  18.   }
  19.   return xmlhttp;
  20. }
  21.  
  22. var request = getXmlHttp();
  23. request.open('GET', 'script.php?params=' + encodeURIComponent('myparam'), true);
  24. request.onreadystatechange = function() {
  25.   if (request.readyState == 4) {
  26.      if(request.status == 200) {
  27.  
  28.        var response = eval('(' + request.responseText + ')');
  29.  
  30.        alert(response.data);
  31.  
  32.       }
  33.   }
  34. };
  35. xmlhttp.send(null);
  36.  
  37.  


// Серверная сторона, получение данных, обработка, создание ответа (вывод, например, в json)

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $params = $_GET['params'];
  4.  
  5. //.... какие-либо действия с данными
  6.  
  7. echo '{ data: "Hello from PHP.SU" }';
  8.  
  9.  
  10.  
  11.  
 
 Top
JustUserR
Отправлено: 20 Ноября, 2010 - 18:45:51
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Ammy пишет:
eval('('+json+')'
Предложенный вами вариант решения может представлять значительную проблему с безопасностью размещенного ресурса - по причине отсутствия предварительной проверки целевого кода в расположении его на уровня представления строковой констаны - в общем случае обеспечение указанных действий возможно посредством использования функции parseJSON


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ammy
Отправлено: 21 Ноября, 2010 - 07:14:52
Post Id



Частый гость


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


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




Цитата:
может представлять значительную проблему с безопасностью размещенного ресурса

А если серверная (доверенная) сторона генерирует правильный безошибочный (!evil) JSON ответ? И какие быстрые альтернативы (eval) существуют помимо проверки строковой константы с json регулярным выражением?

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. // javascript.ru
  4.  
  5. var my_JSON_object =
  6. !(/[^,:{}[]0-9.-+Eaeflnr-u nrt]/.test(data.replace(/"(.|[^"])*"/g, ''))) &&
  7. eval('(' + data + ')')
  8.  
  9.  


Кроме минималистичной альтернативы одному упомянотому вами методу из громоздкой библиотеки jQuery ничего более быстрого и безопасного я не вижу.. Посмотрите:
http://code[dot]google[dot]com/p/json-sans-eval/
Основано на http://www[dot]json[dot]org/js[dot]html

Очевидный плюс - простота использования, скромный размер minified:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var myJson = '{ "x": "Hello, World!", "y": [1, 2, 3] }';
  3. var myJsonObj = jsonParse(myJson);
  4. alert(myJsonObj.x);  // alerts Hello, World!
  5. for (var k in myJsonObj) {
  6.   // alerts x=Hello, World!  and  y=1,2,3
  7.   alert(k + '=' + myJsonObj[k]);
  8. }
  9.  




Цитата:
использования функции parseJSON

ezha пишет:
без наворотов, РАБОЧИЙ пример ajax+php+mysql без подключения сторонних библиотек типа jquery
 
 Top
JustUserR
Отправлено: 21 Ноября, 2010 - 21:13:07
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Ammy пишет:
И какие быстрые альтернативы (eval) существуют помимо проверки строковой константы с json регулярным выражением?
Современные версии поставляемых версий популярных браузеров обеспечивают поддержку встроенной функциональности по разбору JSON-документов - осуществляемую посредством вызова функции parseJSON в проверкой правильности получаемого документа


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Ноября, 2010 - 21:48:18
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




JustUserR пишет:
Современные версии поставляемых версий популярных браузеров
а если это старый браузер? Кто будет думать о переносимости кода?
 
 Top
JustUserR
Отправлено: 22 Ноября, 2010 - 20:44:44
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




DeepVarvar пишет:
А если это старый браузер? Кто будет думать о переносимости кода?
Возможности клиентского программного обеспечения языка JS включают в себя представления встроенных и пользовательскх функциональных элементов как объектов первого рода - что обеспечивает возможность легкой проверки наличия существованя требуемой оптимизированной встроенной функции - и в случае ее отсутсвия выполнения собственного безопасного замещения Приведенный подход является широко употребимым - и применяется в частности во множестве framework-ов с выбором объекта


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Ноября, 2010 - 00:44:14
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




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

Ну а по поводу валидности AJAX-ответа сервера: а вы попробуйте неверно собранный объект отправить клиенту - у клиента ничего не произойдет, Просто в тех местах где должно что-то изменяться после ответа сервера - НИЧЕГО НЕ ИЗМЕНИТСЯ будто и запроса-ответа не было. Тогда зачем вообще парсить на наличие/отсутствие ошибок AJAX-ответ на стороне клиента всякими приблудами и регулярками?

Так не проще:
Сервер ответит с дополнительным "полем": {200:"Ok"}
После ответа сервера делаем eval() и if (myObject.200 == '') { alert("От сервера был получен неверный JSON-формат!!!"); resend(); }
 
 Top
unsleepy999
Отправлено: 23 Ноября, 2010 - 09:48:39
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2010  


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




Простой и понятный пример работы Ajax.
комментарии в каждой строке.
Ajax+PHP+MySQL
качать тут:
www[dot]plati[dot]ru/asp/pay[dot]asp?idd=1040991
 
 Top
DlTA
Отправлено: 23 Ноября, 2010 - 17:08:05
Post Id



Постоянный участник


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


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




unsleepy999, Вы разделом ошиблись.
 
 Top
JustUserR
Отправлено: 23 Ноября, 2010 - 20:38:57
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




DeepVarvar пишет:
Выбирать надо не сразу оба варианта и делать проверку какой из них нужно запустить, а просто сделать по старому, ведь это по сути оптимизация на скорость выполнения
Процесс определения выбираемой весри функциональности совместимой с заданным программным обеспечением пользователя является одиночной линейной проверкой для которой не обепеичвается возможная вычислительная развертка - в то время как осуществление выбора целевой обрабатывающей функции может в значительной мере оказывать влияение на безопасность и вычислительную эффективность - поскольку принимаемые ей компоненты являются информацонные поля вариацинного размера


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Ноября, 2010 - 09:18:30
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




JustUserR пишет:
одиночной линейной проверкой для которой не обепеичвается возможная вычислительная развертка

По вашему:
Передаем клиенту 2 варианта клиентских скриптов (новый и старый) - выросло время загрузки страницы.
Узнаем что это за браузер, если новый пихаем проверку "по новому" - если старый пихаем по старому.
Работаем... причем всеравно после ваших двух проверок eval делать...

По моему:
Делаем eval и всего одну проверку удачи/неудачи создания обьекта!!!
Работаем...

О каких линейных проверках без развертки речь идет??? Скорее всего в моем случае та же самая "фишка" и работает, только действий меньше )))
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB