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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> мз одного под обьекта передать в родительский, обьект значения 
V
    Опции темы
Sanchezzz
Дата 9.12.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Всем привет, я не мастре задовать вопросы.

в общем за день переписал 3 раза конструкцию немогу передать кое-какие переменные THIS

в общем в коде комент читайте что я хочю передать

3 конструкция (могу и остальные перислать):

Код


function ajaxcore(){}
ajaxcore.prototype = {
    ajax: null,
    aut     :false,
    username:null,
    pwd:null,
    response:null, //Суда должно прийти ответ, суда нужно вставить из подобьекта данные {}

    getAjaxType: function(){
        return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? 5 : 4);
    },
        
    init : function(){
        this.ajax = (new XMLHttpRequest() || new ActiveXObject('Msxml2.XMLHTTP') || new ActiveXObject('Microsoft.XMLHTTP') || null);
    },
    
    send : function(url,method,parms,async){
        if(!this.ajax) this.init();
        if(method!=null) method  = (method||'').toUpperCase(); //POST,GET,HEAD
        if(!async) async = this.async;
        if(parms!= null) parms = this.prepare(parms);
        this.ajax.open(method, url, async);    
        
        this.ajax.onreadystatechange = this.onStatusChange(); //СМ функцию.
    
        this.ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
        this.ajax.send(parms);
    },
    
//ВОТ ТУТ не могу отдать в this.response обьекта ajaxcore

// Пробывал this.response

    onStatusChange: function(){
        if(this.ajax.readyState == 4 && this.ajax.status==200){
          this.response  = {text: this.responseText, xml: this.responseXML};
          }
    },
    
    prepare:function(parms){
        if(typeof(parms) == 'object'){}
    },
        
    abort: function() { if(this.ajax){ this.ajax.abort(); this.ajax = null;}}
}



как передать из XMLHttpRequest.onreadystatechange() родительскому обьекту ajaxcore переменные {text: this.responseText, xml: this.responseXML};

Зарание спасибо.




--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
ksnk
Дата 9.12.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



24-ю. строчку нужно заменить на 
Код

        var self=this;
        this.ajax.onreadystatechange = function(data){self.onStatusChange(data)}; //СМ функцию.


Заклинание называется - замыкание...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Sanchezzz
Дата 9.12.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



зацикливание помогло но не работает в FF ksnk не подскажешь как под FF подправить?


Код

function ajaxcore(){}
ajaxcore.prototype = {
    ajax: null,
    aut     :false,
    username:null,
    pwd:null,
    response:null,
    getAjaxType: function(){
        return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? 5 : 4);
    },
        
    init : function(){
      // suka iza IE6 - xxx vmeste vzatiX
      //  this.ajax = (new XMLHttpRequest() || new ActiveXObject('Msxml2.XMLHTTP') || new ActiveXObject('Microsoft.XMLHTTP') || null);
        if(window.XMLHttpRequest){
            try {this.ajax = new XMLHttpRequest();} catch(e){}
        }
        else if(window.ActiveXObject){
            try {this.ajax = new ActiveXObject("Microsoft.XMLHTTP");} catch(e){}
            if(!this.ajax)
             try {this.ajax = new ActiveXObject("Msxml2.XMLHTTP");} catch (e){}
        }
    },
    
    send : function(url,method,parms,async){
        if(!this.ajax) this.init();
        if(method!=null) method  = (method||'').toUpperCase(); //POST,GET,HEAD
        if(!async) async = this.async;
        
        if(parms!= null) parms = this.prepare(parms);
        
        this.ajax.open(method, url, async); 
        
        var sthis = this; //FIX Opera9x IE6 FF?
        this.ajax.onreadystatechange = (function() {
              sthis.onStatusChange();
        });
            
        this.ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
        this.ajax.send(parms);
    },
    onStatusChange: function(){
        if(this.ajax.readyState == 4 && parseInt(this.ajax.status)==200){
          this.response = {text: this.ajax.responseText, xml: this.ajax.responseXML};
         //    alert('');
          }
          
    },
    
    prepare:function(parms){
        if(typeof(parms) == 'object'){}
        return 'bag=12';
    },
        
    abort: function() { if(this.ajax){ this.ajax.abort(); this.ajax = null;}}
}


Это тест

var ajax = new ajaxcore();
ajax.init();
ajax.send('bag.php','POST',{gfx:'fff',sendff:'ff'},false);
alert(ajax.response.text);




--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
ksnk
Дата 9.12.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Вот такая функция у меня где-то используется...
Код

    function getReq(){
        /* Создание нового объекта XMLHttpRequest для общения с Web-сервером */
        var req = false;
        /*@cc_on @*/
        /*@if (@_jscript_version >= 5)
        try {
          req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e2) {
            req = false;
          }
        }
        @end @*/
        
        if (!req && typeof XMLHttpRequest != 'undefined') {
          req = new XMLHttpRequest();
        }
        return req;
    }


Добавлено через 2 минуты и 29 секунд
Там фича используется - условная компиляция JS от MS...

Мне почему-то кажется, что , XMLHttpRequest  не имет отношения к объекту window...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aliance
Дата 9.12.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Какую ошибку выдает в Лисе?
PM MAIL WWW ICQ Skype   Вверх
Sanchezzz
  Дата 9.12.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



В том то и прикол что обычным способом мне не подходит

Aliance в дебагере никакую просто не может передать this.response 

Это сообщение отредактировал(а) Sanchezzz - 9.12.2008, 18:04


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Aliance
Дата 9.12.2008, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



Цитата(ksnk @  9.12.2008,  18:06 Найти цитируемый пост)
Мне почему-то кажется, что , XMLHttpRequest  не имет отношения к объекту window... 

Ты ошбиаешься. Как минимум введи в адресной строке следующее:
javascript: alert( window.XMLHttpRequest );

Sanchezzz, при POST обращении параметры необходимо передавать в формате поле=значение
PM MAIL WWW ICQ Skype   Вверх
Sanchezzz
Дата 9.12.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Aliance я в курсе как параметры передавать просто я еще двиг не дописал 
мне удобно передавать объектом.  я два способа сделаю

проблему решил оказывается ФФ не может принять иза того что я объект создаю ajax поставил единицы заработало.

мне осталось сделать очередную отправку и передавать методом объекта ну и разные фичи


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Aliance
Дата 9.12.2008, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

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



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


 




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


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

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