Генерация 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 дынные
}

