从select中获取值 - Drupal

时间:2014-01-23 10:05:31

标签: drupal drupal-7

我有一个问题。如何从$ 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。

1 个答案:

答案 0 :(得分:2)

你可以在你的情况下使用简单的jQuery,也可以使用drupal FORM API #ajax属性。一个元素数组,其值可以控制元素相对于Drupal AJAX framework的行为。 AJAX(异步Javascript和XML)是一个术语,用于浏览器和服务器之间的动态通信,无需重新加载页面。您可以在此属性here上找到更多详细信息。如果您觉得困难,可以尝试drupal提供的开发人员的示例,准确显示下拉列表中的值如何依赖于另一个下拉列表。

Drupal Developer examples

使用简单Jquery(如果您的值只是静态值。如果您需要从db获取值,则应使用jQuery+ajax

Jsfiddle