Большое количество форм(организация)

Beckie

Новичок
PHP:
Forms::$e = '
<script type="text/javascript">
$(document).ready(function() {
$("#form").validate({
		errorPlacement: function(error, element) {error.appendTo("");},
		rules: {
		
		co: {required:true,minlength: 3, maxlength: 30},
		summa:{required:true,digits: true},	
		sf:{required:true},
		
		pl1:{required:true},
		
		
		wb:{url: true,minlength: 1,maxlength: 30},
		pc:{minlength: 1, maxlength: 7, digits: true},
		tx:{required: true,minlength: 10, maxlength: 1000},
		ph:{required: true,digits: true,minlength: 1,maxlength: 15},
		em: {required:true,email: true,maxlength: 50}		
		}});
	});
</script>';

//Forms::$imp = 1; это просто условие для css, что поле обязательно к заполнению
//Forms::$right = 1; это условие для float:right

Forms::$e .= '<div class="fp">';Forms::$imp = 1;include_once(PART . "co.php");Forms::$e .='</div>';
Forms::$e .= '<div class="fp">';include_once(PART . "txt.php");Forms::$e .='</div>';
Forms::$e .= '<div class="fp">';include_once(PART . "ph.php");include_once(PART . "mail.php");Forms::$imp = 0;Forms::$e .='</div>';
Forms::$e .= '<div class="fp">';Forms::$imp = 0;Forms::$right = 1;include_once(PART . "www.php");Forms::$right = 0;Forms::$e .='</div>';
Forms::$e .= '<div class="fp">';include_once(PART . "img.php");Forms::$e .='</div>';

echo Forms::$e;
Forms::$e = '';
Ну вот пример моего подхода.

Имя файла 0_2_360.php

То есть 0-категория, 2 суб-категория и 360 суб-суб-категория.
 

dimagolov

Новичок
Beckie, ты хочешь select каскадом (выбрал 1-й уровень, получил 2-й, потом выбрал его и получил 3-й и т.д)? Это вызывает у тебя подозрение, что потребуется по форме на каждую категорию на каждом уровне?
 

Beckie

Новичок
Автор оригинала: Adelf
Я думаю, он всем ясен кроме тебя :)
Форма там одна.
Да я чет переутомился походу. :D

Да форма одна, обработчик один. Я имел ввиду генерацию формы.

Сейчас задача, сгенерить форму для всех категорий.
 

Adelf

Administrator
Команда форума
Возьми любой генератор форм(ну Zend_Form например) и работай с ним.

Все "знания" о категориях описывай отдельно. Либо в XML, либо где-нибудь еще. По этим описания генерим нужную форму. И по ним же грамотно можно записывать в базу.
 

Beckie

Новичок
Автор оригинала: dimagolov
Beckie, ты хочешь select каскадом (выбрал 1-й уровень, получил 2-й, потом выбрал его и получил 3-й и т.д)? Это вызывает у тебя подозрение, что потребуется по форме на каждую категорию на каждом уровне?
Угу. Хочу хотя бы 1 форму на каждую категорию 1-ого уровня.

Я просто ищу более динамичный способ всё это организовать.
 

Фанат

oncle terrible
Команда форума
слушайте, я правильно понял, что у него проблема не в том, что у авто надо указывать объем двигла, а у мобильника - диапазон, а в том, что надо длинно категорию выбрать?

а о таких вещах он вообще не заморачивается, все пишется просто в текстарии?
 

Beckie

Новичок
Автор оригинала: dimagolov
да ты еще программируешь на языке JQuery....
Ну писанины было бы с проверками. Да и с регулярками я не особо дружу. А так вообще писал бы на чистом. Да и jQuery тут сплошь и рядом с анимацией, почему бы не воспользоваться библиотекой. :)

-~{}~ 14.10.09 17:30:

Автор оригинала: Adelf
Возьми любой генератор форм(ну Zend_Form например) и работай с ним.

Все "знания" о категориях описывай отдельно. Либо в XML, либо где-нибудь еще. По этим описания генерим нужную форму. И по ним же грамотно можно записывать в базу.
Спасибо, сейчас же гляну! Вместо XML попробую jSon.
 

Adelf

Administrator
Команда форума
слушайте, я правильно понял, что у него проблема не в том, что у авто надо указывать объем двигла, а у мобильника - диапазон, а в том, что надо длинно категорию выбрать?
Не это, кажется, местные телепаты придумали. Хотя автор усиленно им помогал.
 

Beckie

Новичок
Автор оригинала: *****
слушайте, я правильно понял, что у него проблема не в том, что у авто надо указывать объем двигла, а у мобильника - диапазон, а в том, что надо длинно категорию выбрать?

а о таких вещах он вообще не заморачивается, все пишется просто в текстарии?
Все модели мобильников, авто и т.д. уже в базе.

Походу пора на фреймворке писать каком нибудь.
 

Beckie

Новичок
Автор оригинала: dimagolov
Beckie, для начала сходи в гугл по JQuery cascade select
Да не, это я уже написал. :)

Первая страничка категорий у меня уже создана, правда еще не доработана. Надо show/hide внедрить.
Там ajax запросы идут при смене option.

http://pastecode.ru/1899/

первая генерится с php

Лень php обработчики в один объединять, да и функцию можно было сделать одну, но на это время нужно, а сейчас надо с генерацией конечной формы разобраться.
 

Фанат

oncle terrible
Команда форума
Adelf, ненене
По ходу, проблема именно в категориях.
И именно эти категории он по файлам и распихивал
 

dimagolov

Новичок
а сейчас надо с генерацией конечной формы разобраться.
в чем проблема? у тебя как вообще представлен список полей для какой-то "финальной" категории?

-~{}~ 14.10.09 10:56:

По ходу, проблема именно в категориях.
И именно эти категории он по файлам и распихивал
нет, у него код валидации формы под какую-то категорию. он не может решить как это растеражировать на другие категории.
 

Beckie

Новичок
После первой формы, прилетают, только номера категорий.

Вот во второй форме, исходя из этих номеров и требуется сгенерить форму.
 

MuXaJIbI41981

Новичок
а почему нельзя возвращать список категорий сразу а не только номера?
 

dimagolov

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

Beckie

Новичок
Я создал 12 таблиц в базе для всех категорий, думаю и столько же конечных форм и надо будет накодить. Так как они в корне отличаются.

Думаю примусь за совет Ф.а.н.a.т.а :D , попробую использовать elseif.

То есть, если какое-то поле повторяется в большинстве категорий, то его добавлю в конечный else{}, а в if и elseif буду добавлять номер категории в условие и какое изменение делать с полем.

Остается придумать, что делать с валидацией.

Может тоже создать переменную и по ходу прохождения всех условий, его и генерить, а потом вывести готовое правило оператором echo.
 

dimagolov

Новичок
Я создал 12 таблиц в базе для всех категорий
Я вижу аж 5:
1. Таблица "поле формы" в котором описываются поля
2. Таблица "формы"
3. Таблица "правило валидации"
4. Таблица связей форма - поля
5. Таблица связей форма - правило валидации (их может быть много для одой формы и они могут включать одновременно несколько полей, поэтому связь с формой, а не полем)

Хотя, если в итоге на тысячи категорий получается аж 12 разных форм, то их можно закодить жестко вместе с JS и не выдумывать генератор форм.
 

Beckie

Новичок
Автор оригинала: dimagolov
Я вижу аж 5:
1. Таблица "поле формы" в котором описываются поля
2. Таблица "формы"
3. Таблица "правило валидации"
4. Таблица связей форма - поля
5. Таблица связей форма - правило валидации (их может быть много для одой формы и они могут включать одновременно несколько полей, поэтому связь с формой, а не полем)

Хотя, если в итоге на тысячи категорий получается аж 12 разных форм, то их можно закодить жестко вместе с JS и не выдумывать генератор форм.
Вот я и хочу все это закодить. Но тогда php файлик в конце будет толстеньким. :D

Хотя не думаю, что какие-то 25-50кб, грубо говоря, смогут замедлить что-то.

Да и if/elseif/else быстрое само по себе.

Или тут я не прав? :rolleyes:
 
Сверху