Какой конструктор форм обрабатывает отношения данных «многие ко многим» и динамический ввод? - PullRequest
2 голосов
/ 23 марта 2011

Я экспериментирую с Dancer некоторое время и ищу подходящие блоки для создания моего приложения. Фреймворки, как правило, имеют простые примеры приложений, работающих с одной таблицей за раз. Поэтому я не знаю, какие инструменты следует использовать для создания более сложных CRUD-форм.

Допустим, я создаю приложение Booklovers. Он должен иметь форму для добавления / редактирования книг с авторами. Для этого мне нужно 3 таблицы в нашей базе данных: books, authors и books_to_authors. Какой лучший способ создать форму для добавления книги с авторами?

Примечание:

  • Не известно, сколько авторов может иметь книга, нам нужно динамическое добавление строк.
  • Таблица authors может содержать десятки тысяч записей, поэтому элемент формы select не подходит.
  • Автор может отсутствовать в нашей базе данных, нам также нужно добавить его динамически.

Для всех этих динамических частей требуется немного AJAX. Есть ли хорошее решение для интеграции его с инструментами создания форм в Perl? Я посмотрел на CGI :: FormBuilder и все еще ищу, но я не нашел чего-то, что могло бы создать формы для 3-х соединенных таблиц, как описано. Динамическая часть на стороне клиента также должна быть покрыта.

Есть ли лучшие практики для такого довольно простого случая?

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

AJAX предназначен для рендеринга данных в веб-браузере, он не влияет на внутреннее хранилище данных.

Таблицы books и authors имеют отношение многие-ко-многим, и могут помочь ORM, такие как DBIx-Class .

В веб-форме есть новый book и коллекция authors. На стороне сервера создайте book, затем добавьте authors к book.

Просмотрите книгу DBIx :: Class , чтобы получить некоторые идеи.

Извините, что не предоставил простой ответ для решения вашей проблемы.

0 голосов
/ 31 марта 2011

Кажется, это слишком сложный вопрос, чтобы иметь прямое решение.

Я придерживаюсь шаблонов форм и генерирую динамическую часть с различными плагинами jQuery.

Я не думаю, что это лучший способ, но пока не видел лучшего.

...