Plone:检查表单是否已提交
我正在做一个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)