【问题标题】:Render order of Field Sets in a Drupal Form在 Drupal 表单中呈现字段集的顺序
【发布时间】:2020-02-24 10:33:49
【问题描述】:

我有一个表单,它根据计数变量$form_state['num_entries'] 在字段集中创建多个条目。它包含一个区域的文本字段、一个滑块元素和一个滑块值的隐藏字段。

我需要渲染顺序为: 文本字段, 滑块, 隐藏字段。

但表单只渲染所有区域,然后渲染所有滑块,依此类推。 如何修复渲染顺序?

提前感谢您的宝贵时间!

  for ($i = 0; $i < $form_state['num_entries']; $i++) {


    $form['region_fieldset']['places'][$i] = [
      '#type' => 'textfield',
      '#title' => "Region" . " " . ($i + 1),
      '#size' => 22,
      '#attributes' => ['multiple' => 'multiple'],
      '#default_value' => isset($default_values["regions"][$i]) ? $default_values["regions"][$i] : '',

    ];

    $form['region_fieldset']["radius_slider"][$i] = [
      '#type' => 'slider_form_element_field',
      '#title' => 'Radius',
      '#attributes' => ['multiple' => 'multiple', 'id' => "slider_" . $i],
      '#default_value' =>  40,
    ];

    $form['region_fieldset']['slider_value'][$i] = [
      '#type' => 'hidden',
      '#default_value' => isset($form['entry_fieldset']["test-slider"]["#default_value"]) ? $form['entry_fieldset']["test-slider"]["#default_value"] : 40,
      '#attributes' => [
        'class' => ['slider-hidden-value'],
        'multiple' => 'multiple',
        'id' => "slider_value_" . $i,
      ],
    ];
  }

【问题讨论】:

    标签: php drupal drupal-7 drupal-forms


    【解决方案1】:

    好的,我找到了。这是数组中键的顺序错误。 这是正确的方法:

     for ($i = 0; $i < $form_state['num_entries']; $i++) {
    
    
        $form['region_fieldset']['regions'][$i]["places"] = [
          '#type' => 'textfield',
          '#title' => "Region" . " " . ($i + 1),
          '#size' => 22,
          '#attributes' => ['multiple' => 'multiple'],
          '#default_value' => isset($default_values["regions"][$i]) ? $default_values["regions"][$i] : '',
    
        ];
    
        $form['region_fieldset']["regions"[$i]["radius_slider"]] = [
          '#type' => 'slider_form_element_field',
          '#title' => 'Radius',
          '#attributes' => ['multiple' => 'multiple', 'id' => "slider_" . $i],
          '#default_value' =>  40,
        ];
    
        $form['region_fieldset']["regions][$i]["slider_value"] = [
          '#type' => 'hidden',
          '#default_value' => isset($form['entry_fieldset']["test-slider"]["#default_value"]) ? $form['entry_fieldset']["test-slider"]["#default_value"] : 40,
          '#attributes' => [
            'class' => ['slider-hidden-value'],
            'multiple' => 'multiple',
            'id' => "slider_value_" . $i,
          ],
        ];
      }
    

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      相关资源
      最近更新 更多