Zend_Form & Pagination - PullRequest
       22

Zend_Form & Pagination

5 голосов
/ 06 апреля 2011

Я собираю Zend_Form, который имеет множество подформ.На самом деле, он может иметь так много подчиненных форм, что я хотел бы, чтобы они появлялись на нескольких страницах.Можно ли использовать Zend_Paginator для создания многостраничной формы с некоторым динамическим числом страниц?

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

Теперь, скажем, есть 200 изображений.Очевидно, что вы не хотите, чтобы все 200 изображений загружались одновременно, поэтому мне бы хотелось, чтобы пользователь мог пролистывать, скажем, 20 изображений одновременно.Мне действительно все равно, обрабатываются ли страницы по одной за раз или значения сохраняются до тех пор, пока они не завершатся как настоящая многостраничная форма, а затем будут обработаны все сразу.

Я попытался передать данные изображения в paginator, а затем динамически добавить подчиненную форму в частичном цикле.Это проблема, потому что внутри частичного цикла в представлении он не может видеть мастер-форму, к которой мне нужно получить доступ для добавления подчиненной формы ($ this-> form-> addSubform ()).

Следующая идея состоит в том, чтобы вручную создать paginator, используя Limits для запроса к БД, и позволить ему пролистывать данные таким образом.Не идеально, но я думаю, что это сработает.

Есть идеи по более плавной интеграции?Спасибо за помощь!

1 Ответ

1 голос
/ 06 апреля 2011

Я думаю Zend_Paginator - хорошее решение для вас. Используя адаптер Zend_Db_Select или Zend_Db_Table_Select , вы можете извлечь только минимальное количество данных, необходимое для отображения текущей страницы.

Однако многостраничные формы пока не поддерживаются Zend Framework. Но, кажется, есть обходной путь: http://framework.zend.com/manual/en/zend.form.advanced.html#zend.form.advanced.multiPage

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

Вы можете подумать об использовании только javascript и jQuery для обработки редактирования информации об изображении. Просто определите свои формы прямо в html и получите к нему доступ с помощью jQuery.

...