Регистрация

DLE AJAX. Продолжение

TipTop 2-11-2009, 13:09 6191 Разное

DLE AJAX. Продолжение


Вступление:
Давайте начнем наше изучение класса DataLife Engine AJAX на уровне профи ;) Расскажу для начала что когда вы пересчитываете языки, которые вы знаете и в том числе говорите что AJAX это язык - УБЕЙТЕСЬ !!! AJAX никогда не был языком - это технология!!! Читайте Википедию stupid pupils!!! Ну, теперь перейдем к делу...

Своё окно загрузчика:
Те кто уже знают JS им это легко понят, что и как, а тем кто не знает - сложновато прийдеться...
Значит как вы помните в запросе есть такое:
ajax.onShow ('');


А если мы заменим так:
ajax.onShow ('ТЕКСТ ЗАГРУЗКИ');


то в загрузочном окне будет текст "ТЕКСТ ЗАГРУЗКИ", но если вы хотите отдельное окно заменяем:
ajax.onShow ('');


на:
document.getElementById("id элемента").innerHTML = 'HTML код';


Например смотрите делаем
<div id="loader"></div>


и в запросе:
document.getElementById("loader").innerHTML = 'КОД';


и при загрузке выведет "КОД", вот и решили мы первый пункт...

Выполнение функции JS после загрузки:
Как мы знаем что есть несколько функций, таким как:
onloading, onloaded, onInteractive, onCompletion, onShow, onHide...
ну вот и для того что бы сделать alert окно после загрузки делаем такой запрос:
function f(id) {
var ajax = new dle_ajax();
var id = ajax.encodeVAR( id );
var varsString = "";
ajax.setVar("id", id);
ajax.requestFile = dle_root + "engine/ajax/script.php";
ajax.method = 'POST';
ajax.element = 'element';
ajax.sendAJAX(varsString);
ajax.onCompletion = function () {
if(this.response == '0') {
    alert('РЕЗУЛЬТАТ = 0');  
       } else {
        alert('Результат = '+this.response);
       }
    }
return false;
};



как вы заметили this.response возвращает результат ajax запроса.
и еще думаю все заметили что тут используеться функция setVar потому-что она может передать несколько переменных, старайтесь varstring оставлять пустым и использовать setVar...

Добавление элемента:
Что бы добавить элемент например в таблице есть кучу
<tr>

... вот надо добавить еще один мы в запрос добавляем:
ajax.execute = true;
ajax.add_html= true;


и в скрипте обработки вывести что надо...
например:
<div id="ajax-comm">
<div id="comm-1">Первый коммент</div>
<div id="comm-2">2 коммент</div>
</div>


Надо добавить еще один, для этого мы добавляем запрос:
function add_com() {
var form = document.getElementById('form');
var ajax = new dle_ajax();
var text = ajax.encodeVAR( ajax.encodeVAR(form.text.value) );
ajax.onShow ('');
ajax.setVar("text", text);
var varsString = "";
ajax.requestFile = dle_root + "engine/ajax/addcom.php";
ajax.method = 'POST';
ajax.execute = true;
ajax.add_html= true;
ajax.element = 'ajax-comm';
ajax.sendAJAX(varsString);
return false;
};


и вот после такого красивого запроса в файле обработки добавить например:
echo "<div id=\"comm-3\">3 коммент</div>";


и выведет внизу под ними еще один коммент, а что бы например сделать замену всего id="ajax-comm" надо с запроса убрать:
ajax.execute = true;
ajax.add_html= true;



Заключение:
Ну вот мы изучили немного эту технологию на примере класса DataLife Engine AJAX(engine/ajax/dle_ajax.js). Всем спасибо за внимание, с вами был SOFTER(s0fter.ru), не откажусь от плюсика в репу

Похожие новости

DLE Forum (Правка бага с редактированием поста)

Обнаружен баг с редактированием комментариев в DataLife Engine forum v2.3, 2.4

08.01.10 Разное
Статья Защищаем свой сайт от взлома

Данная стать поможет вам организовать некую защиту вашего dle сайта. Самые нежелательные

19.11.09 Разное
Dle Ajax. Вступ

Здравствуйте, теперь я хочу вам уже рассказать вкратце о DataLife Engine AJAX, позже уже поговорим

03.09.09 Разное

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Powered by Dleshka.org. Сайт предназначен для выбора шаблонов и дополнений с использованием CMS DataLife Engine.
Закрыть