Joomla! ... und noch ein CMS
Posts 1-7 of 7
-
Johannes KöpfThe company name is only visible to registered members.Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Hallo,
Ich entwickle gerade eine Kombination aus Modul und Komponente. Das Modul stellt dabei drei verkettete Auswahlboxen zur Verfügung, mit denen ein Thema aus einer Datenbank gesucht wird (das erledigt die Komponente). Nach Auswahl eines Themas in der letzten Auswahlbox wird das Thema über die Komponente angezeigt. Die Komponente wird dabei mit 'document.location.href=...' aufgerufen.
Soweit, so gut. Das Problem ist jetzt, dass, sobald die Komponente aufgerufen wird um das Thema anzuzeigen, mein Modul neu geladen wird und damit alle Auswahlboxen wieder leer sind! Gibt es eine Möglichkeit, die Komponente aufzurufen, OHNE reload des Moduls?
Schon mal vielen Dank im Vorraus
Johannes
- 25 Nov 2010, 10:49 am
-
Benedikt Wallmeyer Premium MemberThe company name is only visible to registered members.Re: Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Ajax jquery damit kann man Content vorladen.
Gruss
Benedikt Wallmeyer
Computer-Service-Wallmeyer
http://www.coswa.de
- 25 Nov 2010, 7:31 pm
-
Johannes KöpfThe company name is only visible to registered members.Re^2: Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Hallo Herr Wallmeyer,
ajax mit jquery benutze ich in dem Modul bereits. Allerdings scheine ich hier ein Verständnisproblem zu haben:
Mit der load- Funktion kann ich u.a. content vorladen, ja. Aber dazu brauche ich ein <div>, in das ich den content 'hineinlade', oder? Den content in das Modul zu laden bringt mir nichts, ich will ihn schließlich im Hauptfenster sehen. Somit könnte das <div> nur in der View der Komponente sein, die ich aber zunächst nicht habe. Das Modul muss also wieder zuerst die Komponente laden, und damit wird es gelöscht.
Wahrscheinlich ist das gar nicht so kompliziert und ich hab nur irgendwo einen Denkfehler. Aber wo?
Ich hab mir heute mal eine andere Kombination aus Modul und Komponente aus Joomla angesehen, nämlich die Umfrage. Da wird allerdings genau der gleiche Weg beschritten, den ich auch genommen habe: Aufruf der Komponente durch 'location.href=...', und auch mit dem gleichen Ergbenis: Sobald das Ergbenis angezeigt wird, ist das Modul wieder leer....
Gruß,
Johannes Köpf
- 25 Nov 2010, 8:59 pm
-
Benedikt Wallmeyer Premium MemberThe company name is only visible to registered members.Re^3: Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Die Frage ist ja wie die Verbindung vom Modul / Komponente zu Datenbank ist, wenn er das Ergebniss in eine php Datei lädt, kann man sich per Ajax und der funktion .load() die Daten laden ohne die Seite (Komponente) neu zu laden.
Computer-Service-Wallmeyer
http://www.coswa.de
- 26 Nov 2010, 12:52 pm
-
Andreas TaschThe company name is only visible to registered members.Re: Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Hi,
JSession is your friend.
z.b. mit set() die checkbox, option, variable, etc. vor der query speichern und im modul mit get() auslesen und checkbox auf checked setzen.
Siehe
http://docs.joomla.org/JFactory/getSession
http://api.joomla.org/Joomla-Framework/Session/JSession.html
BG
This post was modified on 26 Nov 2010 at 11:49 pm.- 26 Nov 2010, 11:13 pm
-
Johannes KöpfThe company name is only visible to registered members.Re^2: Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Hallo,
vielen Dank für die Antworten. JSession scheint tatsächlich das zu sein, wonach ich gesucht hatte. Muss mich da allerdings erst noch etwas einlesen. In der Zwischenzeit habe ich mir einfach den 'blog' div des Hauptfensters geholt und den content da hinaingeschrieben. Hat auch funktioniert, nur wirklich elegant fand ich die Lösung nicht.
- 28 Nov 2010, 6:17 pm
-
Tom Bohaček Premium MemberThe company name is only visible to registered members.Re^3: Eingaben eines Moduls beim Aufruf einer Komponente nicht löschen - geht das?
Die elegenteste Methode ist wohl mit States zu arbeiten, welche intern auf Sessions aufsetzen.
Beispiel:
$wert_box1 = $mainframe->getUserStateFromRequest( 'meinekompo_box1', 'box1', 0, 'int' );
Der Wert der ersten Selectbox wird damit abgerufen. Falls noch nicht vorhanden auf 0 gesetzt und ansonsten gespeichert. Dadurch kann man in einer Zeile gleich im Model den passenden Wert zuweisen und diese auch per Ajax abfragen. Damit werden z.B. alle Filter im Backend realisiert.
- 28 Nov 2010, 10:41 pm
