Drupal 7 Drupal 7视图-如何使公开的过滤器成为唯一数据值的下拉列表

Drupal 7 Drupal 7视图-如何使公开的过滤器成为唯一数据值的下拉列表,drupal-7,drupal-views,Drupal 7,Drupal Views,我正在使用数据模块来允许搜索和筛选表数据。我使用视图在一个表中显示数据,表中有3个暴露的过滤器 我希望用户从3个过滤器中的2个中的特定值中进行选择。但我目前只能显示一个允许用户键入值的文本框。在向视图添加公开的过滤器时,drupal提供两个选项(过滤器类型公开):单一过滤器和分组过滤器,如果您选择分组过滤器,它将允许您选择所需的小部件类型。(Radios/Select)向视图添加公开的过滤器时,drupal提供两个选项(过滤器类型公开):单一过滤器和分组过滤器,如果选择分组过滤器,它将允许您选择

我正在使用数据模块来允许搜索和筛选表数据。我使用视图在一个表中显示数据,表中有3个暴露的过滤器


我希望用户从3个过滤器中的2个中的特定值中进行选择。但我目前只能显示一个允许用户键入值的文本框。

在向视图添加公开的过滤器时,drupal提供两个选项(过滤器类型公开):单一过滤器和分组过滤器,如果您选择分组过滤器,它将允许您选择所需的小部件类型。(Radios/Select)

向视图添加公开的过滤器时,drupal提供两个选项(过滤器类型公开):单一过滤器和分组过滤器,如果选择分组过滤器,它将允许您选择想要的小部件类型。(收音机/选择)

您将要签出。首先将其与devel模块中的dpm()结合使用,以探索视图结构。然后,可以在发送视图进行渲染之前直接更改视图(及其过滤器)。我建议使用一个php函数,比如array_unique(),或者您自己的自定义函数,来循环并唯一化您的结果

mymodule_views_pre_render(&$view) {
  // make sure devel module is turned on first, then take this out when you're
  // done exploring the view results
  dpm($view);
  // this part is pseudocode, I haven't memorized the view structure, but dpm() will
  // show you what to actually put here
  if( $view->name == "my_target_view_machine_name" ) {
    // do your uniquefying here
  }
}
你会想退房的。首先将其与devel模块中的dpm()结合使用,以探索视图结构。然后,可以在发送视图进行渲染之前直接更改视图(及其过滤器)。我建议使用一个php函数,比如array_unique(),或者您自己的自定义函数,来循环并唯一化您的结果

mymodule_views_pre_render(&$view) {
  // make sure devel module is turned on first, then take this out when you're
  // done exploring the view results
  dpm($view);
  // this part is pseudocode, I haven't memorized the view structure, but dpm() will
  // show you what to actually put here
  if( $view->name == "my_target_view_machine_name" ) {
    // do your uniquefying here
  }
}

我发现分组选项与它看起来的不太一样。“分组”一词使我认为它会将该字段中的数据分组,并仅显示可选择用于筛选的唯一值,但事实并非如此。它提供的是一个选项,可以提供您自己的值,这些值显示在下拉列表中,但如果数据发生更改,则您必须继续进入视图并手动添加您希望用户能够从中选择的新值。我怎么会错过这个选项?这正是我需要与数字范围字段模块一起使用的,以便轻松提供从下拉列表中选择“住宿睡眠”范围的选项。我发现分组选项与它看起来的不完全一样。“分组”一词使我认为它会将该字段中的数据分组,并仅显示可选择用于筛选的唯一值,但事实并非如此。它提供的是一个选项,可以提供您自己的值,这些值显示在下拉列表中,但如果数据发生更改,则您必须继续进入视图并手动添加您希望用户能够从中选择的新值。我怎么会错过这个选项?这正是我需要与数字范围字段模块一起使用的,以便轻松提供从下拉列表中选择“住宿睡眠”范围的选项。我希望Drupal会给我一些现成的东西,或者我可以使用另一个模块。我想避免编写代码。然而,我认为在没有这些选择的情况下,你的答案和我的答案一样接近。非常感谢。我希望Drupal会给我一些开箱即用的东西,或者我可以使用另一个模块。我想避免编写代码。然而,我认为在没有这些选择的情况下,你的答案和我的答案一样接近。非常感谢。