2012-08-09 78 views
0

我在Drupal中使用time_tracker_simple模塊。當某人從下拉列表中選擇並點擊提交時,它保持在同一頁面上,但值不保留。如何在選定時保留下拉列表的值。需要保留Drupal中的下拉列表值

下面是模塊中使用的代碼。

function time_tracker_simple_timer_form($form_state) { 
    global $user; 
    $active_timer = _time_tracker_simple_get_timer(); 
    //*** Both start and start buttons must actually be on the form for #submit to work correctly 
    $form['stop'] = array(
    '#value' => t('Stop'), 
    '#type' => 'submit', 
    '#weight' => 20, 
    '#access' => FALSE, 
    '#button_type' => 'timer_control_stop', 
    '#submit' => array('time_tracker_simple_timer_stop'), 
); 
    $form['start'] = array(
    '#value' => t('Start'), 
    '#type' => 'submit', 
    '#access' => FALSE, 
    '#weight' => 20, 
    '#submit' => array('time_tracker_simple_timer_start'), 
    '#button_type' => 'timer_control_start', 
);-----This part is the drop down list------ 
    $activities = array(); 
    $activities[] = '(none)'; 
    $results = db_query("SELECT * FROM {time_tracker_activity} ORDER BY weight ASC"); 
    while ($result = db_fetch_object($results)) { 
    $activities[$result->taid] = $result->name; 
    } 
    if (count($activities) > 1) { 
    // The activity choser 
    $form['activity'] = array(
     '#title' => t('Activity'), 
     '#type' => 'select', 
     '#weight' => 5, 
     '#options' => $activities, 
    ); 
    } 

回答

0

Drupal的形式API允許你爲默認值傳遞給這樣的表格項目:

$form['activity'] = array(
     '#title' => t('Activity'), 
     '#type' => 'select', 
     '#weight' => 5, 
     '#options' => $activities, 
     '#default_value' => $form_state['post']['activity'] 
    ); 
+0

我試試這個,但不起作用。 – Tech 2012-08-09 19:26:15

+0

你還試過了什麼? – Trey 2012-08-09 19:30:16

+0

我嘗試使用一些java腳本的屬性,但不保留這些值。此模塊中有兩個按鈕,一個是啓動另一個是停止。當某人從下拉列表中選擇並點擊開始時,它會提交,但會停留在同一個頁面上,並且新的按鈕是停止,但它不會保留用戶選擇的選定值。並且在有人點擊「開始」按鈕時,它會轉到/節點。 – Tech 2012-08-09 19:38:56