0

Drupal で time_tracker_simple モジュールを使用しています。誰かがドロップダウンリストから選択して送信すると、同じページにとどまりますが、値は保持されません。選択時にドロップダウン リストの値を保持するにはどうすればよいですか。

以下は、モジュールで使用されるコードです。

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

1 に答える 1

0

Drupal フォーム API を使用すると、次のようにフォーム アイテムにデフォルト値を渡すことができます。

$form['activity'] = array(
      '#title' => t('Activity'),
      '#type' => 'select',
      '#weight' => 5,
      '#options' => $activities,
      '#default_value' => $form_state['post']['activity']
    );
于 2012-08-09T19:20:25.677 に答える