Отображение массива в Select - FORM API Drupal - PullRequest
0 голосов
/ 03 мая 2010

Я хочу добавить ключ (type_id) и значение (type_description) для выбора в друпальной форме 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),
    );
}

При этом я получаю только последнее значение, т. Е. Другое. Как правильно выполнить цикл для привязки Выберите для отображения всех массивов Key - Values.

Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 04 мая 2010

Вам нужно создать массив со значениями и использовать его.

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

Тогда вы можете использовать $ options в качестве параметров.

0 голосов
/ 23 октября 2010

Вы также можете использовать функцию для возврата массива вместо установки каждого ключа $ массива $ options.

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

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