Можно ли использовать действия по сохранению формы Symfony по умолчанию для публикации данных через AJAX? - PullRequest
0 голосов
/ 23 мая 2010

Я играл с Symfony, jQuery, jqGrid и AJAX. Для каждого нового сообщения я делаю следующее:

  1. добавление записи маршрутизации в routing.yml
  2. определение нового действия в файле Actions для модуля. Это читает параметры, присваивает значения и сохраняет объект

Как и в случае с jqGrid, форма 'Add Row' не является формой Symfony. Есть ли способ обмануть Symfony и опубликовать данные в действии executeCreate для сохранения новой записи.

Если нет, то предоставляет ли Symfony способ быстрой генерации веб-сервисов для запросов AJAX для каждого из модулей? Это разумная особенность?

То, что я собираюсь сделать по-другому, это

  • создать маршрут
  • создать новое Действие
  • получить все параметры
  • экземпляр объекта
  • присвоить значения и сохранить

Буду признателен за любую помощь в этом быстрее. Заранее спасибо

Ответы [ 2 ]

1 голос
/ 27 мая 2010

Чтобы не создавать новый маршрут каждый раз, вы можете создать одно действие ajax, которое перенаправит ваши запросы в нужную часть приложения.

Просто создайте действие, которое принимает дополнительный параметр, называемый «действие», а затем отправьте запрос.

0 голосов
/ 23 мая 2010

Если вы используете коммерческую версию jqGrid для PHP, которая доступна за $ 299 (см. http://www.trirand.net/forum/default.aspx?g=posts&t=200), тогда вам просто нужно задать вопрос на соответствующем форуме поддержки (см., Например, http://www.trirand.net/forum/default.aspx?g=posts&t=200). Если вы используйте бесплатную версию jqGrid, тогда, вероятно, вам следует просто попробовать sfAlyssaJqGridPlugin (см. http://www.symfony -project.org / plugins / sfAlyssaJqGridPlugin ) или ysJQueryUIPlugin (см. http://trac.symfony -project.org / browser / plugins / ysJQueryUIPlugin и http://www.celalo.com/integrating-jqgrid-with-symfony-propel/).

Я не использую Symfony сам. В общем, вы можете интегрировать в jqGrid любой веб-сервер, предоставляющий чистые данные либо в формате JSON (лучший способ), либо в формате XML, но вы должны знать о возможностях ajax. Если sfAlyssaJqGridPlugin и ysJQueryUIPlugin не решат вашу проблему, вам следует выяснить, как вы можете выполнять следующие действия в чистом JavaScript / jQuery :

  1. Получить данные с сервера, которые должны отображаться внутри jqGrid. jqGrid может предоставить серверу дополнительную информацию о сортировке, разбивке по страницам и фильтрации данных, выбранных на стороне клиента пользователем, который использует jqGrid. Эта информация будет добавлена ​​в качестве параметра пользователю URL для запросов к серверу или может быть отправлена ​​на сервер другим способом (в jqGrid существует множество возможностей настройки).
  2. Изменить данные (строку данных), отображаемые в jqGrid
  3. Добавить новые данные (строка с новыми данными), которые будут отображаться в jqGrid
  4. Удалить данные (строку данных), отображаемые в jqGrid

Все эти действия могут быть настроены в jqGrid, поэтому для начала будет достаточно небольшого JavaScript с использованием jQuery.ajax и без jqGrid для всех этих действий. Тогда я мог бы помочь вам реализовать эти действия внутри jqGrid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...