Form Submit
Eingetragen von drupalino (1064)
am 27.07.2010 - 11:51 Uhr in
am 27.07.2010 - 11:51 Uhr in
Hallo zusammen.
was muss ich machen um in einem Formular (eigenes Modul) beim Absenden auf eine neue Seite zu kommen und dann dort die Ergebnisse des Formulars anzuzeigen? Standart ist es ja so, dass die Ergebnisse (wenn es denn weche gibt) wieder auf der Seite des Formuars ausgegeben werden.
- Anmelden oder Registrieren um Kommentare zu schreiben
#redirect
am 27.07.2010 - 12:06 Uhr
Hallo.
Verwende #redirect für die Umleitung.
ok, und wie komme ich dann an
am 27.07.2010 - 12:08 Uhr
ok,
und wie komme ich dann an meine abgeschickten variablen dran? damit ich diese weiterverwenden kann?
Du hast 2
am 27.07.2010 - 13:19 Uhr
Du hast 2 Möglichkeiten:
Entweder in der Form selber definieren ...
<?php
function mymodule_form($form_state) {
$form = array();
$form['#redirect'] = 'deine_url';
// ...
return $form;
}
function mymodule_form_submit($form, &$form_state) {
// In $form_state['values'] sind alle Variablen gespeichert.
}
?>
oder nach Versand des Formulars weiterleiten:
<?php
function mymodule_form($form_state) {
$form = array();
// ...
return $form;
}
function mymodule_form_submit($form, &$form_state) {
// In $form_state['values'] sind alle Variablen gespeichert.
$form_state['redirect'] = 'deine_url';
}
?>
Gut, nur das löst mein
am 27.07.2010 - 14:50 Uhr
Gut, nur das löst mein Problem ja nicht.
Denn wenn ich dieses Modul installiere, dann existiert ja u.U. die Seite auf dem System gar nicht, auf die ich ein Redirect mache!
Erstellst du das Formular in einem eigenem Modul
am 27.07.2010 - 15:06 Uhr
oder nutzt du ein Formular aus einem anderen Modul?
In jedem Fall kannst du einfach das ACTION-Tag abändern ($form['#action'] = url("/xxx");).
Entweder im Hook_form() oder hook_form_alter() hast du Zugriff darauf. Mach ggf. vorher eine Prüfung ob die Seite existiert bzw. antwortet.
Gruß
UwBach
Das ist ein eigenes Modul.
am 27.07.2010 - 15:20 Uhr
Das ist ein eigenes Modul.
Dann ..
am 27.07.2010 - 15:23 Uhr
.. überschreib doch einfach das ACTION-Tag und fertig. Prüfungen usw. sind ja beliebig.
Gruß
UwBach
Warum legst Du dann diese
am 27.07.2010 - 15:26 Uhr
Warum legst Du dann diese Seite nicht im Modul via hook_menu() an und präsentierst dort die Ergebnisse?
Die Werte kannst Du ja in der DB oder in einer Session speichern und dann entsprechend gethemed wieder ausgeben