"zweistufiges" Formular erstellen
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 13.02.2010 - 12:09 Uhr in
Hallo Leute,
ich möchte mittels der Form API ein Formular erstellen, welches allerdings sozusagen "zweistufig" sein soll.
Der User soll zuerst eine Combobox sehen (Also das Form-Element "select"), welches mit einigen Node-Titeln gefüllt ist.
Dort wählt er einen Nodetitel aus, klickt auf einen "Weiter"-Button und kommt zur zweiten Seite des Formulars.
Dieses Formular soll dann aber mit verschiedenen CCK-Feld-Inhalten des zuvor gewählten Nodes erstellt werden.
Also als Beispiel:
User sieht die Combobox, wählt dort "Node 3", klickt auf "weiter" und bekommt ein neues Formular, in welchem er in Textfeldern die Werte der CCK-Felder von Node 3 sieht
(das ist nur ein Beispiel, hab was umfangreicheres vor, aber das trifft das Problem, vor dem ich stehe)
Habe leider gerade gar keine Idee, wie ich das bewerkstelligen könnte =( könnt ihr mir da auf die Sprünge helfen?
mfg Exterior
- Anmelden oder Registrieren um Kommentare zu schreiben
Mit input type hidden
am 13.02.2010 - 12:26 Uhr
Am besten mit einem input type hidden, das dir die Stufe des Formulars anzeigt, in Abhängigkeit davon kannst du dann das Formular validieren und ausführen.
Für das 2. Formular schreibst du eine zusätzliche Form Funktion, die du dann in der eigentlichen Formfunktion aufrufst.
function such_form($form_state) {
// 2nd Step is displayed
if ($form_state['storage']['step'] == 2) {
return such_form_page_two();
}
else {
$form['step'] = array(
'#type' => 'hidden',
'#value' => '1');
// Additional Form elements...
}
return $form;
}
nodereference / multistep
am 13.02.2010 - 14:02 Uhr
Ich hatte gerade selbst eine ähnliche Frage:
http://www.drupalcenter.de/node/25145
Der Weg über nodereference (in CCK) und evtl der multistep module könnten Dir helfen.
Ciao, hermx
@hermx Danke für den
am 13.02.2010 - 15:20 Uhr
@hermx
Danke für den Vorschlag, aber das bringt mir nichts, weil der User keine Nodes erstellen soll, sondern er soll eine Seite aufrufen, auf welcher das Formular zur Verfügung gestellt wird, welches er ausfüllen soll und die Daten werden dann in eine extra MySQL-DB eingetragen.
Aber den Vorschlag von tiger werde ich mal ausprobieren.