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
Форумы портала PHP.SU :: Версия для печати :: Помогите с AJAX
Форумы портала PHP.SU » Разное » Прочее » Помогите с AJAX

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

1. kuzya - 28 Марта, 2007 - 20:11:13 - перейти к сообщению
Вот написал небольшой код (http://kuzya.inattack.ru/test.php) но он отказывается работать под мозиллой. Везде написано как и что нужно для мозилы реализовывать, но ни один пример в ней не работает =((((. Если кто разбирается - посмотрите код плиз, помогите.
P.S. В IE всё робит нормально.
2. kamikadze - 28 Марта, 2007 - 20:13:41 - перейти к сообщению
+ под оперой не пашет =))
3. Viper - 29 Марта, 2007 - 11:39:29 - перейти к сообщению
у тебя в коде обработка XMLHTTPRequest задана для ActiveX который поддерживается только IE. для Других браузеров нужно писать обработку преобразования XSLT.
Т.е. для IE будет нечто вида:
var outDoc = new ActiveXObject(getActiveXImpl(ACTIVEX_DOMS));

а этот же код для Mozilla будет выглядеть так:
var outDoc = xsltProcessor.transformToDocument(xmlDoc);

соответственно имена переменных для функций и имена самих функций буду разные.

значение для ACTIVEX_DOMS будет вида var ACTIVEX_DOMS = ["Msxml2.DOMDocument.5.0", "Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XMLDOM"];
а для Mozilla указывать не нужно.

ЗЫ! Вообще-то неплохо писать на каком "движке" пишеш.
4. kuzya - 30 Марта, 2007 - 19:08:52 - перейти к сообщению
Вот код из большинства ресурсов:
function initXMLHTTPRequest(){
var xRequest=null;
if (window.XMLHTTPRequest){
xRequest=new XMLHttpRequest();
} else if(window.ActiveXObject){
xRequest=new ActiveXObject("Microsoft.XMLHTTP")
}

return xRequest;
}

Как понять "на каком движке пишеш"?
5. Viper - 02 Апреля, 2007 - 11:58:31 - перейти к сообщению
kuzya пишет:
Вот код из большинства ресурсов: ...

что-то я сильно сомневаюсь чтобы ActiveX работал под движком браузера не поддерживающим его.

kuzya пишет:
Как понять "на каком движке пишеш"?


имеется ввиду prototype или dojo или ... "движков" много.

ЗЫ! Рекомендую http://ru[dot]wikipedia[dot]org/wiki/Ajax
6. kuzya - 02 Апреля, 2007 - 12:58:00 - перейти к сообщению
Неет, Вы о5 не так поняли. Вышепривидённая функция возвращает компонент ActiveX если ActiveX включен(то есть если IE) в обратном же случае - возвращается window.XMLHttpRequest.
7. kuzya - 02 Апреля, 2007 - 20:03:37 - перейти к сообщению
всё, разобрался. Ошибка была до ужаса банальной =) 3 буквы пропустил =)
8. kamikadze - 02 Апреля, 2007 - 21:09:37 - перейти к сообщению
Скажи хоть де запорол код, пусть остальные посмотрят!
9. Viper - 03 Апреля, 2007 - 08:22:43 - перейти к сообщению
1. Сказал как сам сделал.
2. Подробнее пожалуйста что исправил Улыбка
10. kuzya - 03 Апреля, 2007 - 12:23:20 - перейти к сообщению
Не пропустил а дописал =)
Короче не знаю почему так призошло но когда написал
xRequest=new XMLHttpRequest;
за место
xRequest=new XMLHttpRequest();
то всё заработало. Грубо говоря вообще случайно получилось правильно написать =)
Хотя в книжке написано со скобками...полтергей какойто =)
11. UserID - 04 Апреля, 2007 - 16:44:06 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. function ajax()
  3. {
  4.         // Connection handler
  5.         var req = null;
  6.        
  7.         // Browser platform
  8.         var browser = null;
  9.        
  10.         // Handler of copy ajax method
  11.         var xmlHttpRequest;
  12.        
  13.  
  14.         this.ajax = function()
  15.         {
  16.                 this.req = (false || true);
  17.                 this.browser = (false || true);
  18.                 this.getBrowser();
  19.                
  20.                 this.aVersion = [
  21.                 "Microsoft.XMLHTTP",  
  22.                 "MSXML2.XMLHttp",
  23.                 "MSXML2.XMLHttp.3.0",
  24.                 "MSXML2.XMLHttp.4.0",
  25.                 "MSXML2.XMLHttp.5.0"];
  26.                
  27.                 if(this.browser == true)
  28.                 {
  29.                         for(var i = 0; i < this.aVersion.length; i++)
  30.                         {
  31.                                 this.xmlHttpRequest = new ActiveXObject(this.aVersion[i]);
  32.                                 if(this.xmlHttpRequest == true) {
  33.                                         break;
  34.                                 }
  35.                         }
  36.                 }
  37.  
  38.                 else {
  39.                                 this.xmlHttpRequest = new XMLHttpRequest();  
  40.                         }
  41.  
  42.                 return this.xmlHttpRequest;
  43.         }
  44.        
  45.         this.getBrowser = function()
  46.         {
  47.                 var browser_name  = navigator.appName.toLowerCase();
  48.                 var browser_check = "microsoft internet explorer";
  49.                
  50.                 if(browser_name == browser_check)
  51.                         this.browser = true;
  52.                 else
  53.                         this.browser = false;
  54.                
  55.                 return this.browser;
  56.         }
  57. //-------------------------------------------
  58.  
  59. //-------------------------------------------
  60.  
  61. }
  62.  


Это кусок из "псевдокласса" на js. У меня работал и на Мозилле, и на Осле, и в Опере. Извиняйте, писал сходу. Так что ошибки не исключены, но это уже мелочи..

 

Powered by ExBB FM 1.0 RC1