Plone:检查表单是否已提交

1 投票
2 回答
1401 浏览
提问于 2025-04-17 13:09

我正在做一个Plone模板。目前我在模板上实现一个搜索功能。模板上有一个表单,它会提交到同一个模板,也就是同一页面。

我需要让页面的某些部分可见,比如结果的区域(DIV),只有在表单提交后才能显示。我不太确定怎么检查页面是否已经提交,并显示页面的某些部分。

我看过这个链接,里面讲了怎么用form.submitted,但对我帮助不大。我猜我需要做的事情会在tal:condition标签里完成。

任何帮助都非常感谢。

2 个回答

0

我找到了一种方法让它工作。

我使用了一个 tal:condition,并在提交表单时检查请求对象中的数据。

要查看请求对象里面有什么,只需在你的页面上放入以下内容:

<div tal:replace="structure request" />

注意:当调用请求对象时,它会显示一个可读的HTML格式的数据。我们使用“structure”来防止HTML被转义。

在我的情况下,我需要检查我的搜索表单是否被提交了。所以在DIV标签里面,我检查了查询字符串是否为空。下面是代码示例:

<!-- Form has been submitted -->
<div tal:condition="python:request.environ.get('QUERY_STRING') != ''"></div>

<!-- Form has not been submitted -->
<div tal:condition="python:request.environ.get('QUERY_STRING') == ''"></div>

注意,你可以使用任何你想要的变量。我只是选择使用请求对象中的 QUERY_STRING

这可能不是完美的,但我希望它能给其他人一些方向。

3

你可以添加一个隐藏的字段,比如叫“submitedform”,值设置为“1”。然后,你可以在下面的代码中加个条件判断:

request.get('submitedform', 0)

撰写回答