Form API in D5
am 22.04.2009 - 08:31 Uhr in
Hallo zusammen,
zunächst mal eine grundsätzliche Frage:
Ich hab ein Formular, was ich mehrmals ansteuern will. Im ersten Schritt gibt der User was ein -> Klick,
ich suche den Begriff in der DB und will mit dem Ergebnis ein Select-Feld im gleichen Formular befüllen.
Das kann der User annehmen oder doch was eigenes eintippen -> 2.Klick
Fertig.
Meine Idee war jetzt, das über eine _validate function zu machen. Würdet ihr das auch so machen?
Oder gibt es eine andere "Best Practice" hierzu?
die zweite Frage:
Ich hab die Form-API in D5 so verstanden, dass ich Werte zwischen form-function, _validate und _submit mittels form_set_value() weitergeben kann. Allerdings lässt sich so mein Select-Feld nicht befüllen, weil es hat ja keinen #value sondern #options.
<?php
form_set_value($form['mein_selectfeld']['#options'], $opt_array)
?>
funktioniert leider nicht.
Was kann ich tun?
Merci
- Anmelden oder Registrieren um Kommentare zu schreiben
Re: Form API in D5
am 22.04.2009 - 11:52 Uhr
Ich hab ein Formular, was ich mehrmals ansteuern will.
Füge ein Verstecktes Feld
step
zum Formular hinzu. In diesem Feld speicherst du, welcher Schritt des Formulars aktuell ist:<?php
function example_form($form_values = null) {
if (form_values === null) {
$step = 1;
} else {
$step = $form_values['step'] + 1;
}
$form['step'] = array(
'#type' => 'hidden',
'#value' => $step,
);
switch ($step) {
case 1:
// TODO: Formularelemente für den ersten Schritt hinzufügen
break;
case 2:
// TODO: Formularwerte für den ersten Schritt in value-Felder packen
// TODO: Formularelemente für den zweiten Schritt hinzufügen
break;
}
return $form;
}
function example_form_validate($form_id, $form_values) {
switch ($form_values['step']) {
case 1:
// TODO: Formularfelder aus Schritt 1 validieren
break;
case 2:
// TODO: Formularfelder aus Schritt 2 validieren
break:
}
}
function example_form_submit($form_id, $form_values) {
// Die endgültige Verarbeitung erfolgt nach dem letzten Schritt.
if ($form_values['step'] == 2) {
// TODO: Formulardaten verarbeiten und speichern.
}
}
?>
--
Merci vielmals! Hat noch
am 23.04.2009 - 11:39 Uhr
Merci vielmals!
Hat noch jemand eine Idee bzgl. des Select-Feldes?
-----------
Luca Curella
Kooperative Netze - Berlin
Du brauchst da überhaupt nichts mit form_set_value() machen.
am 23.04.2009 - 11:54 Uhr
Du brauchst da überhaupt nichts mit
form_set_value()
machen. Die$form_values
stehen dir ja inhook_form
,hook_validate
undhook_submit
zu Verfügung.--