Ich habe im Admin ein Formular erstellt.
$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(),
);
Ich füge dann jede Zeile hinzu wie:
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),
);
}}
Die Form sieht gut aus! Das erste Problem ist jedoch, dass der zugewiesene Wert #default_valuenicht im Formular angezeigt wird. Wenn ich es auf #valueden richtigen Wert ändere, wird es angezeigt. Also frage ich mich, wie das gemacht werden soll? Die Drupal-Dokumentation besagt, #valuedass sie nicht mit Formularen verwendet werden sollte, obwohl sie genau so funktioniert, wie ich es erwarten würde.
Das Hauptproblem besteht darin, dass ich einige Testdaten in eines der Textfelder eingebe und abschicke: Ich sehe keinen der übermittelten Werte in meiner _submitFunktion.
Weder $formnoch $form_stateenthält es einen der Werte, die ich in die Textfelder eingegeben habe.
Ich frage mich, ob das daran liegt, dass ich rendere #theme => "table". Ist jemand auf dieses Problem gestoßen? Irgendwelche Ideen zu Änderungen, die ich vornehmen kann, damit ich die Werte sehen kann, die ich eingebe, wenn ich das Formular an die _submitFunktion sende ?