0
私はまだ自分のdrupal 7モジュールで作業していますが、何か問題があります。私はドロップダウンオプション(選択)にデータベースの内容を読み込もうとしていますが、私はdrupalの例と同じコードを読み書きしていますが、データベースはまだロードされていません。 私のコードに間違ったことがあるのですか、drupalの例以外のドロップダウン・オプションにデータベースをロードする方法がありますか?ここデータベースコンテンツをドロップダウンオプションに読み込む方法(選択)
私はあなたがちょうどあなたのselect要素に#options
キーを追加するために忘れてしまった
function prod_entry_load($entry = array()) {
$select = db_select('aa_1122','aa');
$select->fields('aa');
foreach ($entry as $field => $value) {
$select->condition($field, $value);
}
return $select->execute()->fetchAll();
}
function prod(){
return drupal_get_form('prod_form');
}
function prod_form($form_state){
$form = array(
'#prefix' => '<div id="updateform">',
'#suffix' => '</div>',
);
$entries = prod_entry_load();
$keyed_entries = array();
if (empty($entries)) {
$form['no_values'] = array(
'#value' => t("No entries exist in the table dbtng_example table."),
);
return $form;
}
foreach ($entries as $entry) {
$options[$entry->no] = t("@no: @name ", array('@no' => $entry->no, '@name' => $entry->name));
$keyed_entries[$entry->no] = $entry;
}
$default_entry = !empty($form_state['values']['no']) ? $keyed_entries[$form_state['values']['no']] : $entries[0];
$form_state['entries'] = $keyed_entries;
$form['no'] = array(
'#type' => 'select',
'#title' => t('Choose'),
'#default_value' => $default_entry->no,
'#ajax' => array(
'wrapper' => 'updateform',
'callback' => 'prod_form_update_callback',
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
'#ajax' => array(
'callback' => 'ajax_alert',
),
);
return $form;
}
function prod_form_update_callback($form, $form_state) {
$entry = $form_state['entries'][$form_state['values']['no']];
foreach (array('name') as $item) {
$form[$item]['#value'] = $entry->$item;
}
return $form;
}
私はすべてをチェックしたと思ったとき、私はとても不注意だった。ありがとうクライヴ – Altic