2010-11-01 40 views
2

我不知道是否有人可以幫我解決這個問題.. 我在drupal中有一個foreach循環,它通過迭代選擇某些JQuery滑塊。 這工作正常。 但是我想在循環中添加一個標記字段,以便我可以在wach滑塊上方有一個標題div。它不是循環遍歷每個標題,而是一次顯示所有4個標題,然後是全部4個標題?這是正確的行爲?請看下面。Drupal窗體foreach循環

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, 
); 

}

非常感謝, 羅斯

回答

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表格屬性。

+0

嗨安德魯,感謝已整理我的問題很多。是的,這個類型是在別處提供的。只是出於興趣,任何想法爲什麼它循環失常,是正常的? – 2010-11-02 10:52:21

+0

是的,這是正常的 - 它的定義方式是Drupal創建它的形式(來自formapis) – 2010-11-04 16:19:19

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, 
); 

} 
+0

這很有趣,我現在可以在晚上睡覺了! :) – 2010-11-10 15:23:22