Php 如何在Drupal 6中从自定义模块欺骗表单值而不抛出;“非法选择”;错误

Php 如何在Drupal 6中从自定义模块欺骗表单值而不抛出;“非法选择”;错误,php,jquery,drupal-6,drupal-views,drupal-modules,Php,Jquery,Drupal 6,Drupal Views,Drupal Modules,我有一个网站,它使用带有暴露过滤器的视图和Finder模块来搜索工作。其中一个标准是薪资范围,它在一个包含4个选项的选择框中以英镑显示。但是,客户端要求提供一个选项,允许用户显示不同的货币 我创建了一个模块,允许用户选择不同的货币,然后设置一个包含货币值的会话变量。当用户查看包含Finder搜索表单或views exposed筛选器的页面时,Drupal会添加一些JQuery,根据会话变量的值更改选择框的可见值。但是,它不会更改select选项的实际值—仅更改用户可以看到的内容 不幸的是,此方法

我有一个网站,它使用带有暴露过滤器的视图和Finder模块来搜索工作。其中一个标准是薪资范围,它在一个包含4个选项的选择框中以英镑显示。但是,客户端要求提供一个选项,允许用户显示不同的货币

我创建了一个模块,允许用户选择不同的货币,然后设置一个包含货币值的会话变量。当用户查看包含Finder搜索表单或views exposed筛选器的页面时,Drupal会添加一些JQuery,根据会话变量的值更改选择框的可见值。但是,它不会更改select选项的实际值—仅更改用户可以看到的内容

不幸的是,此方法抛出了“检测到非法选择,请与站点管理员联系”错误,这显然是因为发布的表单数组与Drupal存储的表单数组不匹配。所以问题是,我怎样才能阻止这个错误的发生?我认为JQuery在提交之前会重置表单值,尽管我不确定如何在用户单击提交按钮和实际提交表单之间更改值。另一种选择可能是hook\u form\u alter来更改表单值,但我不确定这是否也能起作用


有什么想法吗?

我为所有感兴趣的人创建了一个使用hook\u form\u alter的新模块。钩子为currency添加了一个额外的按钮,当提交时,设置一个包含currency信息的会话变量。当我的模块读取会话时,它会根据会话值更改“实际薪资级别”字段