JS функції

У файлі "ajx.js" розташовані функції для виконання аякс-запиту за допомогою js-об'єкта "XMLHttpRequest".

Функція post
    Аргументи функції:
  1. url: до якого відкривається (XMLHttpRequest.open) асинхронний запит.
  2. f: callback-функція, що обробляє результат запиту на подію "onreadystatechange"  об'єкта "XMLHttpRequest": за його "readyState" = 4.
  3. params: дані для відправки
  4. type: може вказуватися "Content-type" даних у заголовку (Header) запиту.
  5. method: може вказуватися метод запиту за промовчанням "POST".
  6. progressBar: може вказуватися елемент «progress» — прогрес виконання запиту, що наочно відображає прогрес, якщо не вказано — цей елемент шукається на сторінці, може бути відсутнім.
  7. Header: може вказуватися масив додаткових заголовків HTTP — наприклад, для вказівки браузеру не кешувати запит.

Застосовується у функціях "ajx" та "ajxFormData", де запит до URL "/lang/?ajx" - до "index.php" при цьому підключається файл "/1/ajx.php".
Тут "lang" - атрибут тега "HTML" сторінки, зазвичай вказує мову - наприклад "en", може вказувати папку - наприклад "/help".

Функція "ajx"

Для передачі даних текстом.

    Аргументи:
  1. event. Може використовуватися для об'єкта "подія" в callback-функції, що передається п'ятим аргументом. Не обов'язковий, може використовуватись з іншою метою.
  2. Ім'я першого поля запиту (POST). Файл "/1/ajx.php" підключає файл PHP з цим ім'ям - за наявності файлу і якщо ім'я поля не в списку для підключення файлу до папки "/1/core/".
  3. Дані: текстове значення першого поля. Через символ "&" можуть слідувати інші поля.
  4. div: блок: куди поміщати відповідь на запит (txt). Якщо div - TEXTAREA, то в "value", інакше в "innerHTML". Об'єкт може бути перепризначений в callback-функції. Якщо є відповідь (txt) і div не вказано - відповідь відображається у спливаючому вікні - функцією "showDiv".
  5. callback скрипт або функція може бути масивом: перший скрипт або функція виконується до виконання (приміщення тексту в блок), другий скрипт або функція після виконання.
    Приклад такої функції: f(evt,txt,div){div.checked=(txt==1)}. Тут аргументи: подія "event" з 1 аргументу, результат (відповідь на запит), блок "div" із 4 аргументів.
  6. b:
    1. відповідь на запит не поміщати в div (при b=1)
    2. поміщати в div GIF (або SVG) очікування (при b=2)
    3. відповідь поміщати, але не поміщати зображення очікування (при b=3)
  7. title: заголовок тексту відповіді
  8. modal: =1: відповідь у модальному вікні
  9. method: "POST" за промовчанням можна задати "GET" або інший.

Виконується описана вище функція "post": запит до URL типу "/en/?ajx", де "en" — мова сторінки "lang" (<html lang="en">).

Окрім відображення прогресу виконання запиту в тезі «PROGRESS» — може відображатись картинка очікування "<img class=ajxT src=/i/t.gif>" — якщо відображення відповіді передбачається виконання запиту довше 100 мс.

Функція "ajxFormData"

Для передачі форм даних методом "POST". Файл "/1/ajx.php" підключає PHP-файл з ім'ям першого елемента форми - за наявності такого файлу і якщо ім'я не в списку для підключення файлу до папки "/1/core/".

    Аргументи:
  1. event. Може використовуватися для об'єкта "подія" в callback-функції, що передається третім аргументом. Не обов'язковий, може використовуватися в інших цілях.
  2. form: HTML-форма
  3. js: callback скрипт або функція, може бути масивом: перший скрипт або функція виконується до виконання (приміщення тексту до блоку), другий скрипт або функція після виконання.
  4. div: блок: куди поміщати відповідь на запит (txt), якщо не вказано — поміщати у форму, вказану другим аргументом.
  5. b: не відображати відповіді на запит.

Виконується описана вище функція "post": запит до URL типу "/en/?ajx", де "en" — мова сторінки "lang" (<html lang="en">) .

Якщо відповідь поміщається у форму, розташовану в блоці з класом "ajxAlert" зі спливаючою вікном - це вікно центрується, його ширина може змінюватися за розміром даних.

Функція "showDiv"

Використовується у функції "ajx", може використовуватися і в інших функціях, наприклад "Alert", розташованої у файлі "f.js".

Створює блок із класом "ajxAlert" або - при непустому четвертому аргументі – використовує існуючий.
Це блок в абсолютній позиції у вікно браузера, містить блок напівпрозорого фону і спливаюче блок з текстом першого аргументу.

    Аргументи:
  1. txt: текст спливаючого блоку
  2. a: опціонально — елемент, на який можна встановлювати фокус під час відкриття
  3. modal: опціонально — ознака модальності вікна: не закривати при натисканні поза вікном, що впливає
  4. instead: опціонально — ознака, що слід замінювати існуючий блок із класом "ajxAlert".