我在Drupal 7网站上安装了'better exposed form'模块,我为商业模块目录创建了一个视图,并在JQuery上创建了一个滑块范围过滤器,这里是(抱歉,该网站是俄语,但无论如何,最重要的是一个JQueryUI滑块)http://doors.ekt0.ru/ . 所以,问题是,如何从钩子以编程方式设置滑块最小和最大可能值 . 这是因为想要从产品价格的数据库表中使最小和最大价格成为现实 . 这是我的代码:
function zen_form_views_exposed_form_alter(&$form, $form_state) {
$minmax = db_query('SELECT MIN(`commerce_price_amount`) AS `min`, MAX(`commerce_price_amount`) AS `max` FROM `field_data_commerce_price`')->fetchAssoc();
$form['commerce_price_amount']['min']['#value'] = $minmax['min'];
$form['commerce_price_amount']['max']['#value'] = $minmax['max'];
}
这是$ form数组的'commerce_price_amount'键的内容:
[commerce_price_amount] => Array (
[#tree] => 1
[min] => Array (
[#type] => textfield
[#title] =>
[#size] => 30
[#default_value] =>
)
[max] => Array (
[#type] => textfield
[#title] => And
[#size] => 30
[#default_value] =>
)
)
所以,正如我们在这里看到的,唯一看起来像我需要的数组键是#default_value,但它实际上不是那个,它不会对表单做任何可见的更改,我也尝试了#value键(如上所示)代码),但它设置默认滑块范围值,只是移动旋钮,而不是设置最小值和最大值 . 所以问题是,如何做,第二个问题是,模块中有任何设置可以自动设置最小值和最大值(我无法在设置中找到任何内容) . 提前致谢!
1 回答
BEF模块将这些选项添加为javascript选项,因此您可以使用hook_js_alter()来覆盖它 .