无法在 Drupal 7 中保留依赖选择框的值

Posted

技术标签:

【中文标题】无法在 Drupal 7 中保留依赖选择框的值【英文标题】:Unable to retain values of dependent select box in Drupal 7 【发布时间】:2013-08-13 21:04:50 【问题描述】:

我有两个从属下拉列表,一个用于国家,一个用于州。我在多步骤网络表单中多次使用该概念。 当表单加载时,国家列表就可以了。在选择特定国家时,州列表也可以。 现在问题来了: 如果 webform 的同一部分中有一些必填字段,并且用户没有填写该字段,则表单会刷新并丢失整个状态列表。此外,当移动到下一步(多步网络表单)并返回同一页面时,该值将丢失。 但是在整个过程中,国家选择列表的值是保留的。 不保留使用 ajax 生成的选择选项。 提前致谢。下面是使用的代码。

$form['submitted']['employment_history']['employer_1']['address_of_employer']['country']['#ajax'] = array(
        'callback' => 'my_custom_ajax_callback_for_employer_one',
        'wrapper' => 'edit-submitted-employment-history-employer-1-address-of-employer-state',
        'method' => 'replace',
        );

    /*
     * Implements Ajax callback for populating list of provinces (Employer One).
    */

     function my_custom_ajax_callback_for_employer_one($from, $form_state)  
         $selected_country = $form_state['values']['submitted']['employment_history']['employer_1']['address_of_employer']['country'];
         $states = location_get_provinces($selected_country);
         $form['submitted']['employment_history']['employer_1']['address_of_employer']['state']= array(
             '#type' => 'select',
             '#options' => $states,
             '#attributes' => array('id' => 'edit-submitted-employment-history-employer-1-address-of-employer-state'),
             );
         $form['rebuild'] = TRUE;
         return $form['submitted']['employment_history']['employer_1']['address_of_employer']['state'];
         

【问题讨论】:

【参考方案1】:

我最初的想法是你应该通过引用传递表单和表单状态 ($from, $form_state) 应该是 (&$form, &$form_state) 在你的 ajax 回调(以及你有一个错字)。

【讨论】:

以上是关于无法在 Drupal 7 中保留依赖选择框的值的主要内容,如果未能解决你的问题,请参考以下文章

angular 无法重置下拉框的值

Drupal 暴露日期过滤器:从选择中删除“-Year”

Drupal 7:嵌入视图选择主题

在 Drupal 7 公开视图下拉选择器过滤器中更改默认“-Any-”

如何从drupal 7中选择查询

jsp里,怎么接受下拉框的值?