2012-02-07 3 views
1

Я пытаюсь создать список выбора в drupal, который заполняется из пользовательской таблицы в моем db. Таблица состоит из имени и номера идентификатора. Они оба уникальны.Drupal Выберите опцию в форме

Я использовал это для сбора данных из базы данных и для заполнения двух массивов.

$query = "SELECT `id`, title` from {svm_mail_esp}"; 
$result = db_query($query); 
$i=0; 
while($row = db_fetch_array($result)) { 
$listName[$i] = $row['title']; 
$listID[$i] = $row['id']; 
$i++; 
} 

Вот $ форма массива я использовал:

$form['esp_refferer'] = array(
    '#type' => 'select', 
    '#title' => 'Service Provider', 
    '#required' => TRUE, 
    '#options' => $list, 
    '#cols' => 10, 
    '#default_value' => '- Choose -', //TODO: This needs to be fixed and the form cannot be processed while this is selected 
    '#multiple' => FALSE, 
); 

Это где моя проблема приходит, я хочу, чтобы отобразить имя, но когда форма представляется мне нужно $ узел -> esp_refferer, чтобы быть номером id, а не именем.

Как это сделать?

ответ

3
while($row = db_fetch_array($result)) { 
    $list[$row['id']] = $row['title']; 
} 

Вам необходимо создать массив $ list, Ключи этого массива будут идентификаторами и значением каждого из них будет соответствующий заголовок.

+0

Итак, моя переменная массива для #options останется в списке? Я собираюсь попробовать это сейчас. Спасибо :) – Beyerz

+0

Работал отлично :) Спасибо, вы решили такую ​​головную боль для меня !! – Beyerz

Смежные вопросы