【问题标题】:Drupal Form API - Grabbing the array() key->#valueDrupal Form API - 获取 array() 键->#value
【发布时间】:2011-08-25 14:28:46
【问题描述】:

我有一个 hook_form(),我正在尝试将数据提交到数据库。
当表单选项生成时,它会生成类似<option value="foo">Foo</option>

我不是想获得选项的“价值”。
我试图抓住<option> 之间的部分,即'Foo'

我的表单如下所示:

/*
 * Implentation of hook_form().
 */
function f25_favorites_form() {
  $form['path_options'] = array(
    '#type' => 'value',
    '#value' => array('default' => t('Add a favorite'), 'foo' => t('Foo'), 'bar' => t('Bar')),
  );  

  $form['path'] = array(
    '#type' => 'select',
    '#title' => t('Select Page'),
    '#required' => TRUE,
    '#weight' => '11',
    '#options' => $form['path_options']['#value'],
  );

  $form[submit] = array(
    '#type' => 'submit',
    '#weight' => '1000000',
    '#value' => t('Add')
  );

  return $form;
}

这是 form_submit():

/*
 * Write Form data to database
 */
function f25_favorites_form_submit($form, &$form_state){
  global $user;
  $data = array(
    'uid' => $user->uid,
    'path' => $form_state['values']['path'],
    'title' => $title,
    'weight' => $weight,
    'timestamp' => time(),
  );

  drupal_write_record('', $data);
}

我期待什么

我想有类似的东西:

    'path' => $form_state['values']['path'],

但应该是这样的:

    'title' => $form_state['values']['path'][#value],

【问题讨论】:

    标签: php drupal-6 drupal-fapi


    【解决方案1】:

    根据 Drupal 文档,$form 变量包含来自 f25_favorites_form() 的数据,因此应该可以:

    'title' => $form['path_options']['#value'][$form_state['values']['path']],
    

    基本上,您将获取选定的值(通过 $form_state['values']['path'] 接收)并且由于它是 $form['path_options']['#value'] 数组的键,因此您应该使用它找到文本。

    【讨论】:

    • 好吧,这听起来很有希望;我现在就试试看。
    • 请让我知道它是否有效。如果您需要进一步参考,请查看 Drupal Forms API 快速入门指南link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2010-10-08
    相关资源
    最近更新 更多