Drupal形式foreach循环

时间:2010-11-01 16:01:10

标签: drupal forms drupal-6

我想知道是否有人可以帮我解决这个问题。 我在drupal中有一个foreach循环,它迭代了一些JQuery滑块的选项。 这很好用。 但是我想在循环中添加一个标记字段,这样我就可以在wach滑块上面有一个标题div。它不是循环遍历每一个,而是一次显示所有4个标题,然后是所有4个滑块?这是正确的行为吗?请参阅下文。

foreach ($categories as $key => $title) {

$form['sliderHead'][$key] = array(
  '#type' => 'markup',
  '#value' => "<div id='sliderHeaders'>Header Text</div>"
);

$form['vote'][$key] = array(
  '#type' => 'slider',
  '#title' => $title,
  '#name' => $key, // TODO: define it with the $key variable.
  '#options' => $options,
);

}

非常感谢, 罗斯

2 个答案:

答案 0 :(得分:1)

因为Drupal按照数组深度的顺序呈现,除非您为所有内容指定#weight,否则它将按重量排序。

因此,如果你不想使用权重,你可以这样做,尽管上面使用#prefix的建议对你的情况更好:

foreach ($categories as $key => $title) {

  $form['slider']['head'][$key] = array(
    '#type' => 'markup',
    '#value' => "<div id='sliderHeaders'>Header Text</div>"
  );

  $form['slider']['vote'][$key] = array(
    '#type' => 'slider',
    '#title' => $title,
    '#name' => $key, // TODO: define it with the $key variable.
    '#options' => $options,
  );

}

答案 1 :(得分:0)

滑块不是有效类型。您是否使用其他模块来提供该类型?

如果是这样的话:

foreach ($categories as $key => $title) {
  $form['vote'][$key] = array(
    '#type' => 'slider',
    '#title' => $title,
    '#prefix' => t("<div id='sliderHeaders'>Header Text</div>"),
    '#name' => $key, // TODO: define it with the $key variable.
    '#options' => $options,
  );
}

使用#prefix表单属性。