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:编辑表单上的列表表单

如何在 jqgrid 编辑/添加/删除选项上打开部分视图作为弹出窗口

在 XForms 的单独弹出窗口中插入和更新数据

带有灯箱成功弹出窗口的联系表单提交

Chrome扩展弹出窗口中的表单帖子没有做任何事情

在提交实际表单之前接受弹出窗口中的输入