it-swarm.com.de

Senden von POST Daten innerhalb des Moduls - AJAX

Voraussetzungen für diese Aufgabe sind: Ich kann KEINE Komponenten verwenden (com_ajax ist nicht in der Optionsliste enthalten).

ZIEL: Sende Post-Daten, wenn die Kontrollkästchen mit Ajax innerhalb des benutzerdefinierten Moduls aktiviert sind.

  1. Ist mein AJAX Code korrekt? Um genau zu sein, wenn die URL stimmt? Ich weiß, dass 'defined (' _ JEXEC ') oder die;' nicht zulässt, Post-Daten an bestimmte Dateien wie zu senden Dies, aber selbst wenn ich es auskommentiere, kann ich keine POST Daten abrufen. Was könnte falsch sein? Ich versuche, mit print_r ($ _ POST) auf POSTED-Daten in mod_test.php zuzugreifen. ;

  2. Gibt es eine alternative Möglichkeit, gepostete Daten (ohne Verwendung von Komponenten) an meine Moduldatei helper.php/mod_test.php zu senden? Ich bin offen für kreatives Brainstorming.

      function function1() {
        var data = $("[name='form1']").serialize();
        $.ajax({
            url: "modules/mod_test/mod_test.php", 
            type: "POST",
            async: true,
            cache: false,
            data: data, 
            success: function(data){ 
                alert(data); 
            }
        });
    }
    
    <form method="post" action="this.form.submit();" name="form1">
        <input type="checkbox" name="checkboxList[]" onclick="function1();" value="1">value1</input>
        <input type="checkbox" name="checkboxList[]" onclick="function1();" value="2">value2</input>
        <input type="checkbox" name="checkboxList[]" onclick="function1();" value="3">value3</input>
    </form>
    

Jedes echte Codebeispiel wäre einwandfrei.

2
Wizzy1996

Sie sollten Joomla`s com_ajax verwenden.

Der Weg, um Ihr Ziel zu erreichen, ist:

Ändern Sie url in

index.php?option=com_ajax&ignoreMessages&module=YMODULE&method=YMETHOD&format=json

Außerdem müssen Sie einen Modul-Helfer erstellen unter:

/modules/mod_YMODULE/helper.php

und platziere dort eine Klasse wie ModYMODULEHelper.

Der letzte Schritt besteht darin, die Verarbeitungsmethode wie folgt zu platzieren: public function YMETHODAjax(){return true;}

Das ist so ziemlich alles.


so vereinfachen und verwenden Sie Standardwerte:

url => index.php?option=com_ajax&module=YMODULE&format=json

processing method to use => public function getAjax(){return true;}

Aber ohne &ignoreMessages Erhalten Sie keine Systemnachrichten von JFactory::getApplication()->enqueueMessage()


Sie können auch die Plugin-Strategie überprüfen, die ich in der Antwort auf einen anderen Beitrag beschrieben habe: Mit AJAX in einem benutzerdefinierten Modul - wie geht das?

2
Alexandr

Was Alexandr schrieb, ist richtig. Nur zwei Dinge:

1.- Es ist keine Menü-ID erforderlich

2.- Tu nicht wie ich: Bitte registriere das Modul YMODULE du hast in der Tabelle Erweiterungen erstellt (denk daran, Mod hinzuzufügen )

0
Jaume J.