Ergebnis 1 bis 13 von 13

Thema: Formularinhalte mit AJAX nachladen

  1. #1
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard Formularinhalte mit AJAX nachladen

    Hallo,

    das is jetzt bestimmt ne ziemlich blöde Frage mit ner ziemlich einfachen Antwort. Aber ich kann auch nach einiger Recherche die Antwort nicht finden.

    Ich habe ein Formular mit mehreren Select-Feldern. Nachdem beim 1. Select etwas ausgewählt wird, soll das 2. gefüllt werden. Ebenso mit dem 2. zum 3.!

    Mit mootools kenne ich mich soweit aus. Das ist nicht das Problem. Mein Problem ist das php-skript, welches mir dann die Daten zurück geben soll. Das ist ja nun kein Modul oder ähnliches. Wie bekomme ich das trotzdem soweit in Typolight integriert, dass ich mit den normalen DB-Klassen, etc. arbeiten kann?


    Viele Grüße,
    raveolution

  2. #2
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Hi Leo,

    vielen Dank für die Antwort. Das hilft mir schon weiter! Ich habe mir mal die ajax.php angeschaut. Für mich würde dann wohl die Variante FFL für Formfield in Frage kommen. Aber wo kann ich die Funktion generateAjax() mit meinem Code füllen? Unter den Hooks http://de.contaowiki.org/DevelopmentHooks habe ich diese Funktion nicht gefunden.


    Viele Grüße,
    raveolution

  3. #3
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Ahhh... super!
    Ich danke dir! Ich werde das gleich mal probieren. Mal sehen, ob ich's auf die Reihe kriege.

    Werde dann wieder Bericht erstatten.


    Viele Grüße und einen schönen Abend!
    raveolution

  4. #4
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Also...ich habe jetzt ein wenig herum gespielt. Leider funktioniert es noch nicht. Ich bekomme immer ne Fehlermeldung "Invalid AJAX call.". Konnte aber nicht herausfinden, ob das vom JS oder von der ajax.php kommt!

    Hier mein JS-Code:
    Code:
    window.addEvent('domready', function() {
    
      var tutorial = $('tutorial');
      tutorial.addEvent('change', function(event) {
        var w = tutorial.selectedIndex;
        var selected_val = tutorial.options[w].value;
    
        new Request({
        	url: 'ajax.php?act=ffl&id=kapitel&tut='+selected_val,
        	method: 'post',
        	update: 'kapitel',
        	evalScripts: true, /* this is the default */
        	onComplete: function(response) {
              //Irgendwas was passieren soll wenn der request fertig ist
              alert(response);
            }
        }).send();
      });
    
    });
    ... und das habe ich in der config/dcaconfig.php stehen:
    PHP-Code:
     $GLOBALS['TL_HOOKS']['dispatchAjax'][] = array('ModuleVideotouser''generateAjax'); 
    ... und so sieht die Funktion in der Klasse "ModuleVideotouser" aus:
    PHP-Code:
    public function generateAjax()
        {
           return 
    "hallo Test";
        } 
    Was ich auch noch nicht ganz verstanden habe, ist die Geschichte mit $_SESSION['AJAX-FFL']. Was genau muss da drin stehen?


    Viele Grüße,
    raveolution

  5. #5
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Guten Morgen,

    ok, das habe ich gemacht:
    config/config.php
    PHP-Code:
    $GLOBALS['TL_HOOKS']['dispatchAjax'][] = array('ModuleVideotouser''generateAjax'); 
    ...und in meiner Klasse mit dem Namen "ModuleVideotouser" diese Funktion:
    PHP-Code:
    public function generateAjax()
    {
           return 
    "hallo Test";

    Dann die ajax.php direkt aufgerufen. Mit dem Ergebnis:
    Code:
    Invalid AJAX call.
    Und ich hab keinen Schimmer, woran das liegen kann!


    Viele Grüße,
    raveolution

  6. #6
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.615
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Also zu beginn, du kannst ein Modul nicht über einen Hook aufrufen. Dazu fehlen dem Modul dann die Daten, welche in der __construct()-Funktion benötigt werden. Für den Hook müsstest du eine eigene Klasse machen.

    Ich würde dir aber empfehlen einfach direkt dein Modul aufrufen zu lassen. Schreib die URL so:

    PHP-Code:
    ajax.php?action=fmd&id=' . $this->id . '&tut='+selected_val 
    wobei $this->id dann der ID deines Frontend-Moduls entsprechen soll. Dein aktueller Aufruf mit "action=fll" kann nicht funktionieren, weil dann ein Frontend-Widget gesucht wird. Für den Hook brauchst du keine Action und ID übergeben.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  7. #7
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Zitat Zitat von andreas.schempp Beitrag anzeigen
    wobei $this->id dann der ID deines Frontend-Moduls entsprechen soll.
    Ok, vielen Dank für den Tipp! Ich benötige das aber für ein Backend-Modul. Funktioniert das dafür analog? Bzw. haben BE-Module auch eine ID?

    Sorry, als Anfänger ist das ganz schön kompliziert sich in solche Systeme einzuarbeiten. Wobei das bei TL noch einfacher ist, als bei Typo3!

    @Leo: Nein, ich hatte keine extra Klasse dafür erstellt. Ich wollte das direkt in meine Modul-Klasse unterbringen!


    Viele Grüße,
    raveolution

  8. #8
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.615
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nein, Backend-Modul hat keine Action weil es keine ID gäbe. Der Hook ist dann der richtige Weg. Versuch einfach mal ohne Action und ID!
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  9. #9
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Also erstmal vielen vielen Dank für die hilfreichen Tipps! Ihr habt nen Anfänger echt gut geholfen. Ich habe es jetzt nach ein bisschen herum probieren geschafft. Wo lag der Fehler?

    Der Fehler war folgender: Ich hatte zwar in der config/config.php den Hook wie vorgegeben definiert. Aber es war die falsche config.php. Ich bin nämlich von der system/config/config.php ausgegangen. Und das war natürlich falsch. Jetzt habe ich es in der system/modules/backend/config/config.php drin und damit funktioniert es!
    Außerdem habe ich dafür jetzt auch ne neue Klasse angelegt.


    Da es jetzt funktioniert kann ich guter Hoffnung ins WE gehen!
    Vielen Dank!


    Viele Grüße und ein schönes WE,
    raveolution

  10. #10
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.615
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    du solltest das nicht in der system/modules/BACKEND/config/config.php machen sondern in deinem eignen Modul!
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  11. #11
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Aber mein Modul hat nur 2 Dateien: die Module-Datei im Ordner Backend und die zugehörige Template-Datei im Ordner backend/Templates. Es hat also gar keine eigene config.php.
    Ich habe mich dabei an der ModuleMaintenance.php orientiert!


    Viele Grüße,
    raveolution

  12. #12
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.615
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das spielt keine Rolle, einfach den entsprechenden Ordner und die Datei erstellen, und TYPOlight merkt das.
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  13. #13
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    OK, ich habe das jetzt alles in einen eigenen Ordner unter system/modules gepackt.

    Gibt es eigentlich Schulungen, bei denen Neueinsteiger wie ich mal alle Grundlagen der Entwicklung von Typolight-Erweiterungen aufgezeigt bekommen?


    Vielen Dank und ein schönes WE,
    raveolution

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Inhalte mit AJAX nachladen
    Von joewan im Forum Sonstiges zu Contao
    Antworten: 13
    Letzter Beitrag: 10.06.2013, 10:45
  2. Inhalte via Ajax nachladen
    Von andreasisaak im Forum Off Topic
    Antworten: 8
    Letzter Beitrag: 14.05.2012, 08:59
  3. per Ajax Seiteninhalte nachladen
    Von Jenna im Forum Layout / Templates / Holy Grail
    Antworten: 1
    Letzter Beitrag: 07.10.2010, 00:04
  4. Bild per Ajax Nachladen
    Von coder-seb im Forum Bilder/Dateien
    Antworten: 2
    Letzter Beitrag: 26.06.2009, 13:35

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •