Symfony 在列表页面上使用弹出窗口编辑表单
Posted
技术标签:
【中文标题】Symfony 在列表页面上使用弹出窗口编辑表单【英文标题】:Symfony Edit Form Using Popup On listing Page 【发布时间】:2016-02-12 10:00:09 【问题描述】:我正在使用KNPPaginationBundle
显示记录列表。我想在弹出模型中编辑这些记录,同时保持在同一个列表页面上。我读过它。很多人都在使用 jquery 来做这件事。但我想在 Symfony Way 中做到这一点。
listing页面可以编辑表单吗?
【问题讨论】:
【参考方案1】:您必须使用 Ajax 来编辑记录并保持在同一页面中,因此您必须使用 jquery
【讨论】:
我知道,但我不想使用 ajax。【参考方案2】:正如@NinjaTN 所说,您需要使用 ajax 才能使用弹出窗口。 如果您不想使用 ajax,则需要通过列表视图上的编辑按钮向用户发送表单视图。
Form from Symfony doc
或者您可以使用 easyadmin 之类的捆绑软件
另一种方法是在您的列表网格中的 clickevent 上填充您的表单,使用 JS 将您需要的所有元素发送到您的表单,然后显示您的弹出窗口。
【讨论】:
【参考方案3】:一开始你是在混合两种不同的东西。 Symfony 只是 php 框架,与 jQuery 或 javascript 无关。所以使用 symfony 你不能像使用 jQuery 那样做事。
如果您想在没有 jQuery 的情况下执行此操作,这意味着您想在普通的 twig 中没有 javascript 的情况下执行此操作?如果是这样,您必须为模式窗口中的每一行呈现一个表单。
如果你想在没有 ajax 请求的情况下使用 javascript,你可以这样做:
-
在列表页面上呈现一个编辑表单。
当用户选择要编辑的行时,显示一个模式窗口并使用 javascript 至少更改路由中的 id。
提交后,请确保编辑操作会将用户重定向回列表。
如果这是您对“留在页面上”的定义,那么您就完成了。如果不是,你不能在没有 ajax 的情况下做到这一点,symfony 不会帮助你,因为它没有“javascript 支持”。
【讨论】:
以上是关于Symfony 在列表页面上使用弹出窗口编辑表单的主要内容,如果未能解决你的问题,请参考以下文章
Symfony / Sonata Admin:编辑表单上的列表表单