Drupal Form API - 填充数据库中的字段

时间:2010-11-11 16:35:19

标签: php drupal while-loop form-api

我希望用来自数据库的记录来填充api字段的drupals。

使用:

    function mytopfive() {

  $form['mytop_header'] = array(
    '#type' => 'markup',
    '#value' => t('<h2>Your favourite Jobs</h2>'),
  );


    $result = mysql_query('SELECT * FROM topfive WHERE uid = 1 ORDER BY order_value ASC');

  while ($node = db_fetch_object($result)) {
    $rid = $node->rid;
    $order = $node->order_value;
    $title= $node->title;
  $form['rid'][$node->rid] = array(
    '#type' => 'textfield',
    '#size' => 2,
    '#maxlength' => 1,
    '#default_value' => $rid,
  );

  $form['job_name'][$node->rid] = array(
    '#type' => 'textfield',
    '#title' => t('To'),
    '#size' => 40,
    '#maxlength' => 42,
    '#value' => $title,
  );
  $form['job_order'][$node->rid] = array(
    '#type' => 'textfield',
    '#size' => 2,
    '#maxlength' => 1,
    '#default_value' => $order,
  );

  }

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



return $form;
}

它返回Array。

我觉得答案是一个foreach循环。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

当你说:"it returns Array" ...是Echo的输出,还是输出到drupal页面?

如果是后者,则需要从drupal_get_form调用此函数才能正确呈现表单。因此,在您的情况下,您需要一个包含'page callback' => 'drupal_get_form''page arguments' => array('mytopfive')的菜单项。

如果这没有意义,请告诉我。)