Ho creato un modulo nell'amministratore.
$form['things'] = array(
'#prefix' => '<div id="things">',
'#suffix' => '</div>',
'#tree' => TRUE,
'#theme' => 'table',
'#header' => array(t('Field Label'), t('Field Name'), t('Location'), t('Stuff')),
'#rows' => array(),
);
Aggiungo quindi ogni riga come segue:
foreach ($type_fields as $field_name => $attrs) {
$stuff = array(
'#type' => 'textfield',
'#default_value' => $attrs['stuff'],
);
$form['things']['#rows'][] = array(
array('data' => 'label'),
array('data' => $field_name),
array('data' => $field_name),
array('data' => $stuff),
);
}
Il modulo sembra fantastico! Ma il primo problema è che il valore assegnato #default_valuenon viene visualizzato nel modulo. Quando lo cambio al #valuevalore corretto, viene visualizzato. Quindi mi chiedo come dovrebbe essere fatto? La documentazione di Drupal dice #valueche non dovrebbe essere usato con i moduli sebbene funzioni esattamente come mi aspetto che funzioni.
Il problema principale è quando inserisco alcuni dati di test in uno dei campi di testo e li invio: non vedo nessuno dei valori inviati nella mia _submitfunzione.
Né $form, né $form_statecontiene uno dei valori introdotti ho nei campi di testo.
Mi chiedo se questo è perché sto rendering #theme => "table"? Qualcuno ha riscontrato questo problema? Qualche idea sulle modifiche che posso apportare mi consentirebbe di vedere i valori che inserisco quando invio il modulo alla _submitfunzione?