Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Per Post Daten an eine, als Overlay Path gerendertes Menu Item übergeben.

Eingetragen von geoport (101)
am 23.06.2017 - 13:40 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Hallo Forum,

ich habe eine Seite als Menü Item angelegt, diese öffne ich als Overlay mittels Overlay Path. Aktuell öffne ich die Seite über ein Link:

<?php
$form
= array();
   
   
$form['openlayers_bkg_controls_copyright'] = array(
       
'#prefix' => '<div>
                        <div class="bkg-controls-button enable" id="openlayers_bkg_controls_copyright"><a href="openlayers/bkg_controls/copyright"><span class="glyphicons glyphicons-copyright-mark"></span></a></div>'
,
       
'#markup' => '',
       
'#weight' => variable_get('openlayers_bkg_controls_copyright'),
       
'#suffix' => '</div>',
    );
   
   
$form['openlayers_bkg_controls_copyright_test'] = array(
       
'#type' => 'textfield',
       
'#value' => t('OC'),
       
'#weight' => 15,
    );
?>

Dadurch wird mein Overlay vernünftig angezeigt. Ich möchte jetzt aber gerne auch den Inhalt aus dem Feld 'openlayers_bkg_controls_copyright_test' an diese Seite senden, jedoch mit POST. Wenn ich den Button als Submit baue, dann wird die Seite leider immer neugeladen und bei Ajax wird mir gar nichts ausgegeben. Es muss Post sein, weil es sich um eine Unmenge Zeichen handelt.
Meine Fragen:
Ist das überhaupt möglich?
Wonach muss ich suchen?

mfg
Tim

‹ Funktion nach erfolglosem Login ausführen [gelöst]Custom-Block wird nicht angezeigt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Tim. Wo ist denn der

Eingetragen von Hyp1 (1463)
am 23.06.2017 - 18:31 Uhr

Hallo Tim.

Wo ist denn der Code, den Du oben gepostet hast,
in einem Modul?

Wenn Du eine Form posten möchtest, solltest Du auch die entsprechenden Hooks
benutzen, zumindest hook_form und hook_form_submit.
https://www.drupal.org/docs/7/howtos/how-to-make-a-simple-module-with-a-form-and-menu-link
Ich sehe auch keinen Code der mit Ajax etwas zu tun haben könnte.

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Robert, sowohl das Menu

Eingetragen von geoport (101)
am 26.06.2017 - 07:15 Uhr

Hi Robert,

sowohl das Menu Item und das Formular baue ich mir in einem eigenen Modul auf. Mit dem angegebenen Code kann ich eine Seite öffnen ohne das sich die Seite neulädt. Wenn ich das ganze als Submit Form mache lädt sich die Seite leider neu und ich weiß nicht genau wie ich den Overlay Path öffnen kann mit einem redirect bekomme ich die Parameter nicht weitergeschcikt und die Seite lädt sich auch neu.

<?php


$form
['openlayers_bkg_controls_copyright_submit'] = array(
       
'#type' => 'submit',
       
'#value' => t('OC'),
       
'#weight' => 15,
       
'#submit' => array('open_copyright_submit'),
        ),   
    );

function
open_copyright_submit(&$form, &$form_state)
{
    
$form['#action'] = url('openlayers/bkg_controls/copyright');
}
?>

Mit einem Ajax-Aufruf komme ich leider auch nicht weiter, hier weiß ich nicht wie ich das mögliche Ergebnis als Overlay anzeigen lassen kann.

<?php

$form
['openlayers_bkg_controls_copyright_submit'] = array(
       
'#type' => 'submit',
       
'#value' => t('OC'),
       
'#weight' => 15,
       
//'#submit' => array('open_copyright_submit'),
        //'#method' => 'post',
       
'#ajax' => array(
           
'callback' => 'open_copyright_submit',
           
        ),   
    );

?>

Als Parameter der übergeben werden soll gibt es ein via JS gefülltes Formfeld:

<?php
$form
['openlayers_bkg_controls_copyright_testarea'] = array(
       
'#type' => 'textarea',
       
'#value' => t('OC'),
       
'#weight' => 15,
       
'#attributes' => array('id' => array('openlayers_bkg_controls_copyright_textarea')),
    );
?>

mit ebstem Gruß
Tim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi. Wenn die Seite nicht neu

Eingetragen von Hyp1 (1463)
am 26.06.2017 - 07:37 Uhr

Hi.
Wenn die Seite nicht neu geladen werden soll, musst du im Anhang callback(open_copyright_submit)
Ein json Objekt zurück geben und drupal_exit aufrufen.
Such dir mal ein Tutorial das ajax und json beinhaltet.

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Robert, ich kriege es

Eingetragen von geoport (101)
am 04.07.2017 - 15:07 Uhr

Hi Robert,
ich kriege es einfach nicht gebacken, wenn ich drupal_exit() nutze kommt eine leere Seite, wenn ich drupal_json_output() verwende kommt ein AJAXError. Ich habe leider auch kein Tutorial zu diesem Thema gefunden (Ajax und ersetzen etc ja, aber nichts mit einem POST an Callback und Response-Anzeige als Overlay).

mfg
Tim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, du musst direkt nach

Eingetragen von Hyp1 (1463)
am 04.07.2017 - 15:15 Uhr

Hi,
du musst direkt nach drupal_json_output() drupal_exit() verwenden.
Nach dem JSON Output darf nichts mehr folgen!
Da der JSON Callback ein JSON Objekt zurückliefert und keine HTML Seite
ist klar, dass es eine weisse Seite zurückgibt, daher ist das ja richtig.
In Firebug siehst Du im Request das JSON Object

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • How to Spend a Great Evening at Crash Online Games
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 1 Woche 1 Tag
  • Wenn die Subdomain auf
    vor 1 Woche 2 Tagen
  • ordnerstruktur
    vor 1 Woche 3 Tagen
  • Die Subdomain muß auf den
    vor 1 Woche 5 Tagen
  • Verwende doch das Tag dafür,
    vor 5 Wochen 14 Stunden
  • Guckst du hier: step by step
    vor 5 Wochen 4 Stunden
  • Guckst du hier: step by step
    vor 5 Wochen 4 Stunden
  • Ich habe ja keine Angst vor
    vor 6 Wochen 2 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 6 Wochen 4 Tagen
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250290
Registrierte User: 20516

Neue User:

  • RollingSlots
  • Wolf Dab
  • Scottteday

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 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