2

编辑:

我的原始帖子包含在问题的底部,但非常模糊,因此我正在尝试对其进行更新以使自己更加清楚。我的网站有一个部分,用户可以在其中提交对企业的评论。在一个这样的字段中,他们选择是否有条形标签。他们可以选择无、饮料、食物和两者。当他们提交他们的选项时,它作为浮点值存储在数据库中,无存储为 0,饮料存储为 1,食物存储为 2,两者都存储为 3。然后我将所有这些值平均到一个字段中以显示商家的页面。因此,如果一家企业的酒吧选项卡的平均值为 0.5,则它显示为“无”,值为 1.2 的“饮料”等。

然后我有一个显示所有业务页面的预告片的视图,用户可以通过业务页面上的字段结果过滤结果。我想要一个下拉菜单来显示过滤器的选项,但我不确定如何为数组中的每个值而不是单个值分配范围。这是我目前拥有的:

$options = array(
    '' => 'Any',
    '0' => 'None',
    '1' => 'Drinks',
    '2' => 'Food',
    '3' => 'Both',
    );

如您所见,如果用户在过滤器中选择“饮品”作为选项,则只会显示浮动字段中值为 1 的页面。但是,就用户而言,他们对“饮品”的选择应该过滤所有具有“饮品”值或浮点值的页面 >.75 && <=1.5。我需要数组中的选项来反映这一点。所以,虽然下面的代码不正确,但我想要一些效果:

$options = array(
    '' => 'Any',
    '>=0 && <=0.75' => 'None',
    '>0.75 && <=1.5' => 'Drinks',
    '>1.5 && <=2.25' => 'Food',
    '>2.25 && <=3' => 'Both',
    );

有人知道该怎么做吗?我希望这比我原来的帖子更清楚。

原来的:

我前段时间在drupal论坛上问过这个问题,但我没有得到任何回复,所以我希望这里有人可以帮助我。我在选择数组的模块中有以下代码。

$options = array(
    '' => 'Any',
    '0' => 'None',
    '1' => 'Drinks',
    '2' => 'Food',
    '3' => 'Both',
    );

但是,问题在于每个选项仅与单个值相关。有没有办法为每个选项分配一个范围?结果将是 0 和 1 之间的任何值都分配给 None,1 和 2 之间的任何值都分配给 Drinks 等?

4

1 回答 1

0

根据我们上面的对话,如果数组键确实被编码为表单字段的 value="" 并因此传递到后续页面,我的建议是:

将您的实现移至处理请求,而不是生成表单。我不熟悉 Drupal 开发(无论如何不是在过去 2 年),但我想您在后续请求中有挂钩,您可以在其中修改提交的值,然后再被选择查询的框架拾取。

需要注意的一点:另一方面,您可能无法简单地使用这样的字符串,因为 Drupal 很可能会转义这些值,将它们放在引号中,并使用 = 比较运算符。您可能需要查看 Drupal 文档,了解如何在选择时指定表达式。

于 2012-07-07T05:19:18.300 回答