Генерация AJAX форм

Материал из AOW

Перейти к: навигация, поиск

Генерация AJAX форм

  • Создание формы в классе
$form_id = c_ajax::init_plugin('form')->create_form($form_callback, $event_callback, $params, $access=' ');
    • $form_callback - обработчик вывода формы, возвращает массив формы в стиле SimplePHP, пример (array('c_shop', 'ajax_form')) в обработчик передаются ключи, ключи передаются через шаблон
    • $event_callback - обработчик сохранение формы, пример (array('c_shop', 'ajax_event_form')), в кода обрабтчика Validate::formValidate - не нужен. В обработчик передаются ключи и первый параметр данные из POST, ключи передаются через шаблон. Возвращает при удачной обработки сохранения данных:
      • ничего - после сохранения страница перезагружается
      • сторока с javascript кодом - выполняется после сохраниея формы
      • массив вида array('message' => array('msg' => 'text', 'title' => 'title text')) - генерирует окно уведомления с заданым текстом и заголовком (не обязательно, по умолчанию текст заголовка 'Ошибка') выводящиеся после обработки формы
      • возвращение при не удачной обработки формы, не верные данные в полях массив вида array('fields' => array('pole1' => array('error' => 'Не верный формат данных'))), который мержится автоматически с основным массивым и выводиться та же форма с выведеными ошибками
    • $params - массив, параметры для окна формы, к примеру array('title' => 'Это заголовок формы', 'width' => 'Ширина формы px'), др. параметры можно уточнить в main_res/js/ajax.js.php
    • $access - строка права доступа, к примеру 'c_shop: full access'

Вывод формы в шаблоне Для вывода формы в шаблоне используется функции simplephp: simple_load_ajax_form(&$simplePHP, $id, $keys=array(), $javascript=' ') возвращает js код вызова формы и подключает к странице все необходимые js и css файлы к примеру

<a href="javascript:void(0);" onclick="<?=simple_load_ajax_form($GLOBALS['simplephp'], $form_id, array('id' => 3))?>">Форма</a>
  • $simplePHP - экземпляр класса simplephp
  • $id - form_id, которую вернул метод create_form плагина ajax_form, см. в самое начало комментария
  • $keys - массив ключей которые передаются в обработчики формы и обработки формы, см. выше
  • $javascript - передача запросу javascript переменой, к примеру $('#form_input_text').val(), в параметры обработчиков будет приходить последней

к примеру, array('id' => 4, 'parent_id' => 5), то обработчики будут выглядеть так

public static function ajax_form($id, $parent_id)
{
     echo $id; // 4
     echo $parent_id; // 5
}
public static function ajax_event_form($data, $id, $parent_id)
{
     echo $id; // 4
     echo $parent_id; // 5
     echo $data; // array - post дынные
}
Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru