在Select - FORM API Drupal中显示数组

时间:2010-05-03 16:54:24

标签: php drupal drupal-fapi

我想添加key(type_id)和value(type_description)以在drupal表单API中选择

$ result_x-> product_types-> RPMProductType是数据库的数组结果: - array(4){[0] => object(stdClass)#18(2){[“type_description”] => string(10)“Calendered”[“type_id”] => int(1)} [1] => object(stdClass)#19(2){[“type_description”] => string(8)“Extruded”[“type_id”] => int(2)} [2] => object(stdClass)#20(2){[“type_description”] => string(6)“Molded”[“type_id”] => int(3)} [3] => object(stdClass)#21(2){[“type_description”] => string(5)“Other”[“type_id”] => int(4)}}

foreach ($result_x->product_types->RPMProductType as $data)
{

$form['manufacturer_add_new_sales']['product_type'] = array(
    '#type' => 'select',
    '#title' => t('Product Type'),
    '#options'=>array($data->type_id=>$data->type_description),
    );
}

当我这样做时,我只得到最后一个值,即其他。如何正确循环绑定选择以显示所有数组键 - 值。

提前谢谢。

2 个答案:

答案 0 :(得分:6)

您需要创建一个包含值的数组并使用它。

foreach ($array as $key => $value) {
  $options[$key] = $value;
}

然后您可以使用$ options作为选项。

答案 1 :(得分:0)

您还可以使用函数返回数组,而不是设置$ options数组的每个$键。

'#options'=> function_options($param),
....
....
....

// Your Options populating function
function_options($param){
$optionarray = array();
// Populate array with DB values
.....
..... 
return optionarray;
}