Показать сообщение отдельно
  #12 (permalink)  
Старый 21.05.2010, 10:12
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Вот, что получилось

Js.extend(Js,{
	ajax : function(param){					
				var xhr,
				url = param.url,
				method = param.method || 'GET',
				data = param.data || null,
				async = (param.async==undefined)?true:param.async,
				complete = param.complete;
				if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
				else if(window.XMLHttpRequest) {xhr=new XMLHttpRequest();}
				else {alert('Видимо в вашем браузере не поддреживается ajax');}
				xhr.onreadystatechange = function(){
					if(xhr.readyState != 4 || xhr.readyState==0){/*Loading*/;}
					if(xhr.readyState == 4){
						if(xhr.status == 200){/*Пришёл ответ*/if(complete){complete();}}
						else{elem.html("Error: returned status code " + xhr.status + " " + xhr.statusText);}
					}
				};
				if(method=='GET') {xhr.open(method, url, async);xhr.send(data);}
				else{
					xhr.open(method, url, async);
					xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					xhr.send(data);
				}
				return xhr;
			}
});

Я просто не пойму как же реализовать, чтобы можно было передать в этот запрос что делать когда всё загрузиться. Ведь надо будет получить
данные запроса, а как их получить если они внутри?
Их же надо прописать в вызываемой функции.
Т.е.
$.ajax({url:'index.php',complete:function(xhr){
         if(xhr.responseText=='YES'){alert('YES');}
         else if(xhr.responseText=='NO') {alert('NO');}
         else {alert('Какие-то не те данные');}
}};

Но вот как в JQuery передаётся информация внутрь функции я не пойму.

JQuery пример
$.ajax({
    url: '/ajax/example.html',             // указываем URL и
    dataType : "json",                     // тип загружаемых данных
    success: function (data, textStatus) { // вешаем свой обработчик на функцию success
        $.each(data, function(i, val) {    // обрабатываем полученные данные
            /* ... */
        });
    }
});

Вот как туда попадаёт data, если
function success() {
            // If a local callback was specified, fire it and pass it the data
            if ( s.success ) {
                s.success.call( callbackContext, data, status, xhr );
            }
 
            // Fire the global callback
            if ( s.global ) {
                trigger( "ajaxSuccess", [xhr, s] );
            }
        }

Нету переменных, или я чего не пойму.

Последний раз редактировалось mycoding, 21.05.2010 в 10:21.
Ответить с цитированием