我有一个问题。如何从$ form ['item']获取值,以便我可以使用该值来过滤['item_2']形式的数据。 例: 对于表格如下所示的选项:
item_id item_name
1 pencile
2 book
因此,当我选择2本书时,它会过滤掉其他表格中的数据,我的表格如下:
newitem_id item_id newitem_name
1 1 hard
2 1 soft
3 2 novel
示例代码:
function my_module_form($form,&$form_submit){
$form=array();
$select=db_query("SELECT * FROM {table_1}");
$options_one=array();
foreach($select as $data){
$options_one[$data ->item_id] = $data -> item_name;
}
$form['item'] = array(
'#title'=>t('Items'),
'#type' => 'select',
'#options' => $options_one,
'#required' => TRUE,
);
$temp=1;
$select = db_query("SELECT * FROM {table_2} WHERE newitem_id=:item_id",array(':item_id'=>$temp));
$options_two=array();
foreach($select as $data){
$options_two[$data ->newitem_id] = $data -> newitem_name;
}
$form['item_2'] = array(
'#title'=>t('Items'),
'#type' => 'select',
'#options' => $options_two,
'#required' => TRUE,
);
现在在$ temp的代码中我使用了第一名,它在下拉列表中给出了硬和软值。但是如何将$ form ['item']中的选定值添加到$ temp。
答案 0 :(得分:2)
你可以在你的情况下使用简单的jQuery
,也可以使用drupal FORM API #ajax
属性。一个元素数组,其值可以控制元素相对于Drupal AJAX framework
的行为。 AJAX
(异步Javascript和XML)是一个术语,用于浏览器和服务器之间的动态通信,无需重新加载页面。您可以在此属性here上找到更多详细信息。如果您觉得困难,可以尝试drupal提供的开发人员的示例,准确显示下拉列表中的值如何依赖于另一个下拉列表。
使用简单Jquery(如果您的值只是静态值。如果您需要从db
获取值,则应使用jQuery+ajax
)