Jquery load

  • Moin Moin.

    Könnte mir jemand mal behilflich sein?

    Ich habe ein eigenes Module erstellt das läuft auch alles wie es soll. Da ich aber eine fast Live abfrage mit der Datenbank brauch aber mein Kunde nicht ständig Aktualisieren soll bin ich auf die .load funktion von Jquery gestoßen. Diese läuft auch reibungslos. Nur diese Geladene Datei kann nicht auf die Grundlegenden Funktion von Joomla zugreifen. Ist das Normal so? Hat vielleicht jemand eine Andere Idee was ich nutzen kann oder vielleicht jemand eine Idee wie ich die Joomla Funktionen dort einladen kann? Vielleicht kann ich auch auf eine neue Seite gehen aber das template sollte schon mit übernommen werden. In einigen Dateien die geladen werde sind Formulare drin daher wäre es schön wenn ich die Datenbank Verwaltung über Joomla hätte und nicht PW und DB selbst schreiben muss. Hier der Jquery Code:


    Code
    jQuery('.list-navi').stop().on("click",function(){
            var pfad = "modules/mod_charlys_mitarbeiter/tmpl/";
            jQuery('#output-portal').load(pfad+jQuery(this).attr("id")+".php", function (response,status,xhr){
                if (status == "error"){
                    var msg = "Es ist was falsch gelaufen,";
                    console.log(msg+ " "+ xhr.status + " " + xhr.statusText);
                }
            });
        });


    Ganz kurz dazu was das Module macht. Der Kunde hat eine Werkstatt. Über diese Module nimmt er Aufträge an. Der Mitarbeiten in der Werkstatt greift über ein Tablet auch auf das Modul zu und sieht dann über eine Liste oh da ist ein Auftrag ich sollte mal langsam auf stehen. Das Fahrzeug soll Status Änderungen bekommen wie in Bearbeitung und Fertig oder Ausgeliefert. Damit ein Anderer Mitarbeiter jetzt aber nicht das Auto sucht was schon längst ausgeliefert wurde weil er die Seite nicht Aktualisieren konnte weil er Dreckige Hände hat sollte die Liste der Aufträge immer Aktualisiert werden. Die Seite soll nicht neu geladen werden da es sonst passieren kann das ein Mitarbeiter der gerade ein Auftrag annimmt alles neu eingeben muss.


    Nun um einige Fragen aus dem Weg zu gehen ich bau das ganze über Joomla auf da ein Programm nicht in frage kommen kann weil nicht alle über Tablet funktionieren und auch Händlern kann man nicht immer eine Software aufs Auge drücken. Da ist die Überlegung es über die Internetseite zu machen und mit Joomla Geschützen Funktionen zu Agieren am besten. Auch die Account verwalten läuft alles dann über Joomla.


    Mfg

    Eurer Hilfloser Pitt

  • Dafür hat Joomla die Komponente com_ajax dabei. Quasi ein "Vermittler" zwischen AJAX-Javascript und PHP-Methoden. Man braucht auch eigentlich kein JQuery dafür. In der core.js von Joomla finden sich AJAX-Funktionen, auch schon unter Joomla 3.


    Ich verwende das meist im Zusammenspiel mit Joomla-Plugins. Geht aber auch mit Modulen.


    Das Javascript sendet eine Anfrage via com_ajax an eine Plugin-Methode, in der Daten per PHP ermittelt werden und zurück gehen.


    Eine alte Demoerweiterung (Modul): https://github.com/Joomla-Ajax…e/Hello-Ajax-World-Module

    Das Joomla4-Stats-Plugin ist dann "moderner", aber auch verwirrender für Einsteiger. Auch, weil es das Laden der notwendigen JavaScript-Dateien über den Web Asset Manager etwas verschleiert.

  • Ok das ist mir etwas zu hoch.

    Hast du ein Beispiel für mich wie sowas aussehen kann ?
    Anbei habe ich mal ein Bild angehangen wie es Aktuell aussieht.
    Die rechten grünen Button lösen die .load Funktion aus.
    Die Kundendaten Auftragslisten und Fahrzeuglisten sollen sich immer Aktualisieren. Während das Formular unten nur Laden sollen wenn es abgeschickt wird. Wenn ich jetzt die Komplette Seite immer Reloaden lassen würd das Formular ja auch immer neue geladen und die eingaben verschwinden immer wieder. Daher soll nur die Tabelle neu geladen werden. Das Problem ist aber das diese auf die Datenbank zugreifen muss. Jquery .load schmeißt mir dann aber die Joomla Sachen mit raus weshalb ich den Datenbank zugriff nur über "mysqli_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK); usw." hin bekomme was auch nicht schön ist. Kannst du mir folgen ?