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 »   

> Описание: Научите
Стас
Отправлено: 16 Мая, 2007 - 19:22:29
Post Id


Частый гость


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


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

[+]


Научите хоть чему-нить Закатив глазки
Вот к примеру: вводят в поле логин, а внизу отображается, занят он или нет. Запросы к БД я сам сделаю, какой JS и XML нужен скажите...
 
 Top
UserID
Отправлено: 16 Мая, 2007 - 23:31:55
Post Id



Магистр JavaScript


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


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




XML здесь совсем не нужен.

Вот что я намутил:
PHP:
скопировать код в буфер обмена
  1.  
  2. // Ajax class api
  3. function mycms_ajax()
  4. {
  5.     var AJAX_OBJECT = new Array("Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
  6.     var AJAX_METHOD = null;
  7.     var AJAX_SCRIPT = null;
  8.     var AJAX_HANDLE = false;
  9.    
  10.     // First initialization
  11.     this.ajax = function(method, script)
  12.     {
  13.         // Check for browser platform
  14.         if(window.ActiveXObject)
  15.         {
  16.             for(var i = 0; i < AJAX_OBJECT.length; i++)
  17.             {
  18.                 try {
  19.                     // If Internet Explorer
  20.                     AJAX_HANDLE = new ActiveXObject( AJAX_OBJECT[i] );
  21.                 } catch(e) {}
  22.             }
  23.         }
  24.         else if(window.XMLHttpRequest)
  25.         {
  26.             // If Mozilla, Opera, Safari
  27.             AJAX_HANDLE = new XMLHttpRequest();
  28.         }
  29.        
  30.         // If ajax installed, return hash
  31.         if(AJAX_HANDLE) {
  32.             this.hash = {
  33.                 AJAX_METHOD : method,
  34.                 AJAX_SCRIPT : script,
  35.                 AJAX_HANDLE : AJAX_HANDLE
  36.             };
  37.         } else {
  38.             alert("MyCMS System : No ajax installed. Too old browser.");
  39.         }
  40.         return this.hash;
  41.     }
  42.    
  43.    
  44.     AJAX_HANDLE = this.ajax;
  45.    
  46.     this.callback = function(data)
  47.     {
  48.         if(AJAX_HANDLE)
  49.         {
  50.             if(this.hash.AJAX_METHOD == "POST")
  51.             {
  52.                 with(this.hash) {
  53.                     AJAX_HANDLE.open("POST", AJAX_SCRIPT, true);
  54.                    
  55.                     AJAX_HANDLE.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  56.                  
  57.                    
  58.                     AJAX_HANDLE.onreadystatechange = this.mycms_informer;
  59.                     AJAX_HANDLE.send(data);
  60.                 }
  61.             }
  62.            
  63.             if(this.hash.AJAX_METHOD == "GET")
  64.             {
  65.                 with(this.hash) {
  66.                     AJAX_HANDLE.open("GET", AJAX_SCRIPT, true);
  67.                     AJAX_HANDLE.onreadystatechange = this.mycms_informer;
  68.                     AJAX_HANDLE.send(null);
  69.                 }
  70.             }
  71.         }
  72.     }
  73.    
  74.     this.mycms_informer = function()
  75.     {
  76.         if (AJAX_HANDLE.readyState == 4)
  77.         if (AJAX_HANDLE.status == 200)
  78.             alert("Server is done!");
  79.         else if (AJAX_HANDLE.status == 404)
  80.             alert("Request URL does not exist");
  81.         else
  82.             alert("Error: status code is " + AJAX_HANDLE.status);
  83.     }
  84. }
  85.  


Это эдакий псевдокласс интерфейса Ajax. Работает через POST и GET, единственное, что для русского языка нужно ещё строить массив соответствия кириллицы значениям из rfc. Что-то вроде этого:

PHP:
скопировать код в буфер обмена
  1.  
  2. function utf8_win($s)
  3. {
  4.     $s = str_replace("xD0xB0", "а", $s);  $s = str_replace("xD0x90", "А", $s);
  5.     $s = str_replace("xD0xB1", "б", $s);  $s = str_replace("xD0x91", "Б", $s);
  6.     $s = str_replace("xD0xB2", "в", $s);  $s = str_replace("xD0x92", "В", $s);
  7.     $s = str_replace("xD0xB3", "г", $s);  $s = str_replace("xD0x93", "Г", $s);
  8.     $s = str_replace("xD0xB4", "д", $s);  $s = str_replace("xD0x94", "Д", $s);
  9.     $s = str_replace("xD0xB5", "е", $s);  $s = str_replace("xD0x95", "Е", $s);
  10.     $s = str_replace("xD1x91", "ё", $s);  $s = str_replace("xD0x81", "Ё", $s);
  11.     $s = str_replace("xD0xB6", "ж", $s);  $s = str_replace("xD0x96", "Ж", $s);
  12.     $s = str_replace("xD0xB7", "з", $s);  $s = str_replace("xD0x97", "З", $s);
  13.     $s = str_replace("xD0xB8", "и", $s);  $s = str_replace("xD0x98", "И", $s);
  14.     $s = str_replace("xD0xB9", "й", $s);  $s = str_replace("xD0x99", "Й", $s);
  15.     $s = str_replace("xD0xBA", "к", $s);  $s = str_replace("xD0x9A", "К", $s);
  16.     $s = str_replace("xD0xBB", "л", $s);  $s = str_replace("xD0x9B", "Л", $s);
  17.     $s = str_replace("xD0xBC", "м", $s);  $s = str_replace("xD0x9C", "М", $s);
  18.     $s = str_replace("xD0xBD", "н", $s);  $s = str_replace("xD0x9D", "Н", $s);
  19.     $s = str_replace("xD0xBE", "о", $s);  $s = str_replace("xD0x9E", "О", $s);
  20.     $s = str_replace("xD0xBF", "п", $s);  $s = str_replace("xD0x9F", "П", $s);
  21.     $s = str_replace("xD1x80", "р", $s);  $s = str_replace("xD0xA0", "Р", $s);
  22.     $s = str_replace("xD1x81", "с", $s);  $s = str_replace("xD0xA1", "С", $s);
  23.     $s = str_replace("xD1x82", "т", $s);  $s = str_replace("xD0xA2", "Т", $s);
  24.     $s = str_replace("xD1x83", "у", $s);  $s = str_replace("xD0xA3", "У", $s);
  25.     $s = str_replace("xD1x84", "ф", $s);  $s = str_replace("xD0xA4", "Ф", $s);
  26.     $s = str_replace("xD1x85", "х", $s);  $s = str_replace("xD0xA5", "Х", $s);
  27.     $s = str_replace("xD1x86", "ц", $s);  $s = str_replace("xD0xA6", "Ц", $s);
  28.     $s = str_replace("xD1x87", "ч", $s);  $s = str_replace("xD0xA7", "Ч", $s);
  29.     $s = str_replace("xD1x88", "ш", $s);  $s = str_replace("xD0xA8", "Ш", $s);
  30.     $s = str_replace("xD1x89", "щ", $s);  $s = str_replace("xD0xA9", "Щ", $s);
  31.     $s = str_replace("xD1x8A", "ъ", $s);  $s = str_replace("xD0xAA", "Ъ", $s);
  32.     $s = str_replace("xD1x8B", "ы", $s);  $s = str_replace("xD0xAB", "Ы", $s);
  33.     $s = str_replace("xD1x8C", "ь", $s);  $s = str_replace("xD0xAC", "Ь", $s);
  34.     $s = str_replace("xD1x8D", "э", $s);  $s = str_replace("xD0xAD", "Э", $s);
  35.     $s = str_replace("xD1x8E", "ю", $s);  $s = str_replace("xD0xAE", "Ю", $s);
  36.     $s = str_replace("xD1x8F", "я", $s);  $s = str_replace("xD0xAF", "Я", $s);
  37.     return $s;
  38. }
  39.  
  40.  


Затем, к примеру обработаем нажатие кнопки:
PHP:
скопировать код в буфер обмена
  1.  
  2. function goaja()
  3. {
  4.     var ajax = new mycms_ajax();
  5.     ajax.ajax("POST", "./path.php");
  6.     ajax.callback("test=" +  document.all["test"].value);
  7.     delete ajax;
  8.     return false;
  9. }
  10.  



А сам php-скрипт под это дело:
PHP:
скопировать код в буфер обмена
  1.  
  2. $ptr = fopen("data.dat", "w");
  3. fwrite($ptr, utf8_win($_POST['test']));
  4. fclose($ptr);
  5.  


Пример для GET-запроса:
PHP:
скопировать код в буфер обмена
  1.  
  2. function goaja()
  3. {
  4.     var ajax = new mycms_ajax();
  5.     ajax.ajax("GET", "./path.php?test=" +  document.all["test"].value);
  6.     ajax.callback(null);
  7.     delete ajax;
  8.     return false;
  9. }
  10.  


В работы с XML-документом нет ничего сложного. Советую прочитать здесь:

http://www[dot]xml[dot]com/pub/a/2005/02[dot][dot][dot]ttp-request[dot]html
http://www[dot]xml[dot]com/pub/a/2005/05[dot][dot][dot]/ajax-error[dot]html

EULA: Приведённые здесь скрипты предназначены для ознакомления. Использование их в своих работах подразумевает предварительное изучение и глубокое понимание все написанных здесь скриптов. Если что-то будет непонятно, то в ближайшем будущем я изложу своё понимание работы с AJAX в разделе Пользовательских функций для Javascript. И на будущее, это форум прежде всего для решения каких-то проблем работы скриптов, а не вопросов типа расскажите или научите. В будущем, думаю, на вопросы подобного рода будет просто большими буквами написано RTFM, ато обидно немного получается, что я и многие люди здесь ночами не спят и что-то пытаются изучить и понять, а другие просто спрашивают, не пытаясь разобраться в этом самим. :umnik:
 
 Top
Стас
Отправлено: 17 Мая, 2007 - 08:39:42
Post Id


Частый гость


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


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

[+]


А под какой переменной в PHP скрипте искать то, что передал JS через POST?
 
 Top
UserID
Отправлено: 17 Мая, 2007 - 09:12:33
Post Id



Магистр JavaScript


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


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




Будь повнимательнее:

PHP:
скопировать код в буфер обмена
  1.  
  2. $ptr = fopen("data.dat", "w");
  3. fwrite($ptr, utf8_win($_POST['test']));
  4. fclose($ptr);
  5.  


$_POST['test'] - имя твоей переменной.
 
 Top
kuzya
Отправлено: 13 Июня, 2007 - 21:09:30
Post Id


Гость


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


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




Не по теме канешн, но оч интересно: если я например работаю с windows-1251 то мне так же нужно будет пользоваться чем либо похожим на функцию utf8_win($s) описанную выше?
 
 Top
UserID
Отправлено: 13 Июня, 2007 - 22:12:51
Post Id



Магистр JavaScript


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


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




kuzya пишет:
Не по теме канешн, но оч интересно: если я например работаю с windows-1251 то мне так же нужно будет пользоваться чем либо похожим на функцию utf8_win($s) описанную выше?


Не с чем либо похожим, а именно с этим.
 
 Top
kuzya
Отправлено: 14 Июня, 2007 - 11:29:08
Post Id


Гость


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


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




Спс =)
 
 Top
kamikadze
Отправлено: 21 Июля, 2007 - 18:35:20
Post Id



Склонен к самоубийству


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


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




UserID пишет:
Будь повнимательнее:

PHP:
скопировать код в буфер обмена
  1.  
  2. $ptr = fopen("data.dat", "w");
  3. fwrite($ptr, utf8_win($_POST['test']));
  4. fclose($ptr);
  5.  


$_POST['test'] - имя твоей переменной.


Если я не ошибаюсь то всё сдесь вышеописанное просто посылает значение переменнной скрипту через Аякс и запиывает, а что делать в случае если нам надо еще и вывести свободен ли такой логин, за PHP скриптом дело не постоит а как ьыть с выводом???
 
 Top
valenok
Отправлено: 30 Июля, 2007 - 11:37:51
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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






-----
Truly yours, Sasha.
 
My status
 Top
UserID
Отправлено: 30 Июля, 2007 - 14:26:10
Post Id



Магистр JavaScript


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


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




valenok
Молодец, однозначный ответ.
 
 Top
toturvator
Отправлено: 30 Июля, 2007 - 16:31:40
Post Id


Гость


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


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




А эта технология позволяет управлять элементами формы страницы загружаемой с "чужого" сайта в своем фрейме? Т.е. фрейм мой - он хозяин загружаемого в себя контента, а значит по логике все порождаемые в нем элементы управляемы. Я не ошибаюсь?


-----
заработок на своем сайте
данные из 1С на ваш сайт
 
 Top
UserID
Отправлено: 30 Июля, 2007 - 17:28:17
Post Id



Магистр JavaScript


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


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




toturvator
Теоретически можно, но нужно ли?
 
 Top
toturvator
Отправлено: 30 Июля, 2007 - 19:02:40
Post Id


Гость


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


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




ОЧЕНЬ!!! Улыбка У меня где то пост здесь со смежной задачей. ;)


-----
заработок на своем сайте
данные из 1С на ваш сайт
 
 Top
UserID
Отправлено: 02 Августа, 2007 - 13:01:10
Post Id



Магистр JavaScript


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


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




toturvator
Это что-то на счёт блокировки содержимого сайта?
 
 Top
toturvator
Отправлено: 02 Августа, 2007 - 13:46:19
Post Id


Гость


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


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




Угу. Не понял


-----
заработок на своем сайте
данные из 1С на ваш сайт
 
 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