过滤和查看不同页面上的屏幕

时间:2009-10-28 12:35:08

标签: php drupal views form-api

情境:在Drupal中,当您使用“视图”模块时,它会限制在同一页面上显示“搜索表单”和“结果”。

E.g。 页面A =(搜索表单+结果)

视图模块界面中没有选项可将搜索表单移动/复制到另一页面。 例如。 页面A =搜索表单,页面B =结果表单

问题:如果我在网站首页上有一个单独的过滤(搜索)表单,那么View架构是否允许这个表单,然后此表单会将搜索参数提交给实际视图页面(显示结果)。

我最初的目标是在第一页上进行简单搜索,然后显示结果我会在第二页上显示高级搜索表单。

当然,我将使第一个自定义表单具有与原始过滤器形式相同的字段,以便视图可以理解它们。

这是典型/可接受的解决方案吗?

2 个答案:

答案 0 :(得分:3)

简短回答

使用视图中的暴露表单设置自动执行此操作。

更长的答案

如果您想在视图中执行此操作,请在“基本设置”下将在块中的外露表单设置为“是”。这将创建一个包含所有公开过滤器窗体的块。作为一个块,您可以定义它将出现在哪个区域以及哪些页面上。

块中的表单向页面视图的URL提交GET请求,查询字符串由您在公开过滤器中定义的表单元素设置。

例如,如果您在节点标题上创建公开搜索,并保留“标题”的默认过滤器标识符,则您始终可以制作自己的表单,并将其发布到/searchview?title=blah。我自己也坚持使用积木系统。

答案 1 :(得分:0)

我无法理解你的意思。

将数据发送到另一个页面的搜索表单与MVC模式完全兼容,只要你保持分开(模型中的数据库交互,控制器中的数据操作和视图中的html)。