Новости

Генератор форм для CodeIgniter

Створення форм - досить рутинна завдання. Процес докладно описаний в документації, але можна легко зробити безліч механічних помилок. Наприклад, імена і id полів форми потрібно вказувати кілька разів - в контролері і поданні.

Найголовніше, що в деяких випадках ви не отримаєте повідомлення про помилки, а значить, знайти їх можна буде тільки за допомогою ретельного тестування. Йдеться про правила перевірки полів форми. Ці правила задаються в масиві, і при цьому ключ елемента масиву повинен збігатися з id поля. Але якщо ви неправильно запишіть назву, то CodeIgniter вважатиме, що для даного поля правила просто не задані.

Природно, що навіть часткова автоматизація процесу може значно заощадити ваш час.

Спочатку я пробував використовувати шаблони для створення форм, але це було не зручно. Код повинен бути розміщений в різних файлах, та й кількість і тип полів постійно змінюються.

Тому я написав невеличкий генератор форм для CodeIgniter .

Взагалі-то, генератор був написаний досить давно, але постійно перебував в недоробленому стані. Не вистачало частини полів, і інтерфейс ніяк не можна було назвати дружнім 😉.

Принцип роботи дуже простий. На вкладці «Налаштування» ви вказуєте, які поля вам потрібні їх тип і імена (атрибути name і id). Обмежень на кількість полів немає.

В поле action ви вказуєте, куди потрібно відправити дані форми. Зазвичай це ім'я контролера і метод (наприклад, main / checkform).

Значення в стовпці name (id) встановлюється однаковим для обох атрибутів. Це ж значення використовується при створенні масивів з правилами перевірки ($ rules) і переліком полів ($ fields). Природно, використовувати не латинські символи не рекомендується 🙂.

Стовпець «value або src або label» дозволяє задати напис на кнопках, адреса малюнка або текст мітки для текстових полів. Тобто використання значення в цьому стовпці залежить від типу поля.

У стовпці «Правила» вказуємо правила перевірки полів. Точно також як і при створенні форми вручну. Ці поля можна залишити порожніми. Крім того, для деяких типів полів (наприклад, кнопок) правила не створюються.

Коли всі необхідні поля створені, натискаємо кнопку «Генерувати код».

Створений код з'явиться у вкладках «Контролер», «предствлений» і «CSS». Тепер можете його копіювати в вашу програму.

Примітка. Підтримка CSS експериментальна. У всіх випадках створюються одні й ті ж правила, які задають розміщення в дві колонки. Зліва - мітки (label), праворуч - поля.

Кілька загальних зауважень

1) Генератор створює код, призначений для роботи з PHP фреймворком CodeIgniter. Тому перед використанням раджу, як мінімум познайомитися з бібліотекою Validation цього фреймворка.

2) Написаний генератор так, щоб зберегти максимальну свободу дій. Це означає, що ви можете не вказувати параметри полів форми. Код все одно буде сформований. Але якщо ви залишите незаповненим name (id), то сенсу у використанні генератора просто не буде.

3) Основне призначення генератора - створити каркас форми, який при необхідності можна підправити вручну. Це означає, що клас контролера і основну частину вистави вам потрібно написати самостійно або за допомогою іншого генератора 😉.

4) Додаток написано повністю на JavaScript . Тому ви можете просто зберегти сторінку з ним на вінчестер.

Буду радий почитати ваші відгуки в коментарях 🙂. Особливо цікаво почути критику, бажано аргументовану 😉.

PS Судячи з поточними результатами опитування на Хабрахабр , CodeIgniter займає друге місце за популярністю після Zend Framework. Відставання за все на пару відсотків.

UPD (7.10.2008). Додав простеньку анімацію. Сподіваюся, працювати стане зручніше 🙂.

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: