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_value
nicht im Formular angezeigt wird. Wenn ich es auf #value
den richtigen Wert ändere, wird es angezeigt. Also frage ich mich, wie das gemacht werden soll? Die Drupal-Dokumentation besagt, #value
dass 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 _submit
Funktion.
Weder $form
noch $form_state
enthä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 _submit
Funktion sende ?