Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Form redirect

Eingetragen von drupalino (1064)
am 23.07.2010 - 23:27 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hallo zusammen,

verzweifel hier an einer form, ich versuche nah dem Submit des Formulars eine eigene destination nzugeben. Was ja eigentlich mit $form['#redirect'] = 'irgendwohin'; funktionieren sollte, jedoch klappt das gar nicht????

‹ fourseason Theme mit Drop Down Menu [gelöst] Seite gethemet. Probleme mit Positionierung der Elemente ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo genau benutzt du denn das

Eingetragen von Exterior (2903)
am 24.07.2010 - 00:05 Uhr

Wo genau benutzt du denn das $form['#redirect'] ?

Also wenn ich in meiner form-Funktion (nicht in der submit-Funktion) den Wert setze, klappt alles, wie es soll.

<?php
function my_new_form($form_state)
  {
   
//hier kommen die ganzen Formular-Elemente
   
.....
   
//hier kommt die Redirect-Anweisung

   
$form['#redirect'] = 'node/805';
  }

function
my_new_form_submit($form, &$form_state)
  {
   
//hier kommt die Submit-Funktion
 
}

//Auch per hook_form_alter (bzw. hook_form_FORM_ID_alter) funktioniert das ganze super

function my_module_form_my_new_form_alter(&$form, &$form_state)
  {
   
$form['#redirect'] = 'node/805';
  }
?>

Das klappt alles wie geschmiert, machst du evtl. in der Anweisung was falsch?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst doch einfach eine

Eingetragen von caw (2762)
am 24.07.2010 - 06:05 Uhr

Du kannst doch einfach eine URL eingeben mit http.
Oder inter: internal:node/10

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich theme ein

Eingetragen von drupalino (1064)
am 24.07.2010 - 08:58 Uhr

Ich theme ein Node-Edit-Template und dort :

<?php //print_r($form)?>

<?php print drupal_render($form['taxonomy']); ?>
<?php print drupal_render($form['field_image']); ?>                      
<?php print drupal_render($form['field_sedcard_image']); ?>
<?php print drupal_render($form['field_about_me']); ?>
<?php print drupal_render($form['language']); ?>
<?php print drupal_render($form['author']); ?>
<?php print drupal_render($form['revision_information']); ?>
<?php print drupal_render($form['options']); ?>
<?php print drupal_render($form['menu']); ?>


<?php  $form['buttons']['submit']['#type'] = 'image_button';
   
     unset (
$form['buttons']['preview']);
   
$form['buttons']['submit']['#src'] = drupal_get_path('theme', '_spot') .'/images/btn_spacer.gif';
if(
arg(1)!='add'){
   
$form['buttons']['delete']['#type'] = 'image_button';
$form['buttons']['delete']['#src'] = drupal_get_path('theme', 'l_spot') .'/images/btn_spacer.gif';
}

$form['#redirect'] = 'node/123';
?>


<div class="btn_background">                           
<div id="mid_btn_container">

<div class="mid_btn">
<span class="mid_icon_save">
<!-- Icon Save -->
<?php print drupal_render($form['buttons']['submit']); ?>
<br />Save
</span>

</div>
<?php if(arg(1)!='add'){print'
                                <div class="mid_btn">
                                        <span class="mid_icon_delete">
                                            <!-- Icon Delete -->'
.drupal_render($form['buttons']['delete']).
                                           
'<br />Delete
                                        </span>
                                        </div>'
;}?>

   </div>
  </div>

<?php print drupal_render($form);  ?>
<?php
print_r
($form);   //Enable this to show all Array Variables of Form
?>

Nicht wundern, dass ich öfter render, dies muss ich machen, damit ich die Seite so aufbauen kann wie ichmuss.

Hab schon einiges probiert, aber er Redirekt funktioniert nicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

hook_form_alter in einem

Eingetragen von sepp68 (444)
am 24.07.2010 - 11:34 Uhr

hook_form_alter in einem Modul, denke ich.
Beim Themen ist es wahrscheinlich schon zu spät.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich vermute einfach mal was

Eingetragen von Exterior (2903)
am 24.07.2010 - 12:05 Uhr

Ich vermute einfach mal was ins Blaue:

Der Wert in $form['#redirect'] wird in der Function drupal_redirect_form ausgelesen und dann über drupal_goto weitergeleitet.

drupal_redirect_form wird nur von drei anderen Funktionen aufgerufen, relevant für uns an dieser Stelle ist wohl drupal_process_form.

Und drupal_process_form wird von drei Form-Funktionen aufgerufen:

drupal_execute
drupal_get_form
drupal_rebuild_form

Ich vermute, dass die Funktion drupal_redirect_form einfach nicht in drupal_render aufgerufen wird. Und wenn diese Funktion nicht aufgerufen wird, ist der redirect-Wert hinfällig, da hilft wohl auch kein form_alter, um den Wert zu setzen, wenn man ihn nicht aufruft.

Vielleicht kannst du in die submit-Funktion ein drupal_goto packen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat auf

Eingetragen von sepp68 (444)
am 24.07.2010 - 14:13 Uhr

Zitat auf http://api.drupal.org/api/drupal/developer--topics--forms_api_reference....

Zitat:

Description: The default goto value after form is submitted. This value should be returned by a form's submit callback function, but altering another form's #redirect value by using hook_form_alter() can be useful to change where that form redirects after it is submitted. Also see #action.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, das hatte ich auch schon

Eingetragen von drupalino (1064)
am 24.07.2010 - 14:29 Uhr

Ja, das hatte ich auch schon gefunden.

Also dass heißt aber auch, es geht nur über ein eigenes Modul oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Yep, schätze schon..

Eingetragen von sepp68 (444)
am 24.07.2010 - 14:53 Uhr

Yep, schätze schon..

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, hook_form_alter (oder

Eingetragen von Exterior (2903)
am 24.07.2010 - 17:44 Uhr

Ja, hook_form_alter (oder hook_form_FORM_ID_alter) kannst du nur in einem eigenen Modul implementieren, allerdings wäre das auch keine große Sache.

Allerdings könntest du doch stattdessen auch einfach in der submit-Funktion ganz am Ende ein drupal_goto() einfügen, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 9 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 6 Wochen 6 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association