Dleshka.org
Авторизация

Скачать DLE AJAX. Продолжение

+4
TipTop 2-11-2009 Разное 0 комментариев
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), не откажусь от плюсика в репу
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Авторизация