+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Komponente - Inhalte mit Ajax dynamisch nachladen

  1. #1
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Komponente - Inhalte mit Ajax dynamisch nachladen

    Da ich hier im Forum bisher nicht fündig geworden bin, möchte ich meine Frage als neues Thema posten:

    Ich habe eine Gerätedatenbank, bei der ich im Frontend beim Aufruf nur die Grunddaten laden möchte. Spezifikationen bzw. Details sollen bei Klick auf einen Slider oder einen Tab mittels Ajax dynamisch nachgeladen werden.

    Hat das jemand schonmal umgesetzt und kann mir eine grobe Hilfestellung leisten, wie man das am besten angeht?

    Vielen Dank!
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  2. #2
    Moderator Avatar von Lacki
    Registriert seit
    27.04.2006
    Ort
    Direkt um die Ecke
    Beiträge
    8.736
    Bedankte sich
    337
    Erhielt 3.611 Danksagungen
    in 2.970 Beiträgen

    Standard

    Hallo.
    Elkuku hat das mal hier als Anschauungsobjekt umgesetzt, vielleicht kannst Du es als Anregung gebrauchen.

    EDIT: Das hier ist bestimmt auch noch interessant.
    Geändert von Lacki (27.05.2010 um 17:40 Uhr)

  3. Erhielt Danksagungen von:


  4. #3
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Lackis Link (der zweite) macht ajax mit prototype..

    Da die Mootools schon in Joomla! enthalten sind kann man die auch nutzen

    http://docs.joomla.org/Ajax_using_MooTools
    http://davidwalsh.name/basic-ajax-requests-mootools
    http://demos.mootools.net/Request

    Zu beachten gibt es Unterschiede zwischen den Mootools Versionen..
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  5. Erhielt Danksagungen von:


  6. #4
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    Und für die 1.5 Entwickler gilt (aktuell noch) die Mootools 1.1 Doc.

  7. #5
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Struktur

    Die Links haben mir grundsätzlich geholfen, vielen Dank. Ich skizziere vielleicht mal grob meine Struktur, damit es verständlicher wird. So, wie das jetzt ist, geht es auch. Allerdings möchte ich es so umbauen, dass die Daten dynamisch nachgeladen werden, siehe Ende. Ist-Stand:

    Einstiegspunkt:

    komponente.php, in der eine neue Instanz des Controllers erzeugt wird

    komponente.html.php, in der es eine FUnktion zur Anzeige der Grunddaten gibt, sowie eine zur Anzeige der Details

    je eine Table:

    Grunddaten
    Details

    Controller:

    hat eine Display-Funktion, die sich den View holt

    Model:
    liest die Grunddaten und Details aus der DB

    View:
    view.html.php baut in der display-Funktion die Daten aus Grunddaten und Details zusammen
    default.php zeigt alles an

    So siehts im Moment aus.

    Jetzt soll die default.php die TABS bzw. Slider enthalten, die quasi per onClick die Daten dynamsich für diesen "Abschnitt" nachladen. Wie es jetzt aufgebaut ist, geht das aber nicht.

    Die Frage ist, wie das am sinnvollsten geht? Müsste ich quasi für jede Detailart ein eigenes Model bauen und den dazu passenden View? Wie rufe ich den dann im onClick auf?
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  8. #6
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    Zitat Zitat von midnightlady Beitrag anzeigen
    komponente.html.php, in der es eine FUnktion zur Anzeige der Grunddaten gibt, sowie eine zur Anzeige der Details
    Für was brauchst du so eine Datei? Diese Aufgabe sollten doch der View und das Model übernehmen.

    Ansonsten zum Thema: Du brauchst nun im Prinzip nur noch einen weiteren View, der (per format=raw) die Daten der Tabs ausgibt. Diesen Triggerst du per Javascript (neudeutsch: Ajax) an und ersetzt die bestehenden Daten damit.
    Geändert von bembelimen (30.05.2010 um 16:58 Uhr)

  9. #7
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Trigger

    hallo bembelimen,

    vielen dank für deine antwort. die datei war noch eine altlast, bevor ich den view hatte. ich habe jetzt einen view.raw gebaut. hättest du vielleicht noch ein skizziertes beispiel, wie ich die ausgabe "antriggere"?

    vielen dank

    reglindis
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

  10. #8
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    In deiner view.html.php schreibst du folgendes:

    PHP-Code:
    $doc JFactory::getDocument();
    $doc->addScriptDeclaration("var url='".JURI::root(true).
                                             
    "/index.php?option=com_component".
                                             
    "&view=foo&format=raw;"); 
    Deine Javascriptdatei enthält folgendes:

    Code:
    window.addEvent('domready', function(){
        var request = new Ajax(url, {
                                method: 'get',
                                update: $('feld-id') // anpassen!!
                            });
    
            $('tabX').addEvent('click', function(e) {  // Tab ID anpassen
                    e = new Event(e).stop();
    
                    request.request();
            });
    }
    Das läd jetzt halt nur ein Tab, mehrere Tabs kannst du dann mit mehreren url Variablen (z.B. eine zusätzliche ID als Parameter) und mehrere Ajax Requests machen. Ich denke, das Prinzip sollte aber klar sein.
    Geändert von bembelimen (31.05.2010 um 11:31 Uhr)

  11. #9
    Joomlane Avatar von midnightlady
    Registriert seit
    25.04.2007
    Ort
    Berlin
    Beiträge
    16
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Request

    bembelimen, wieder mal vielen dank für deine (superschnelle) hilfe. ich habe mir jetzt noch einen zusätzlichen parameter als quasi request-id definiert, um zu schauen, aus welchem teil der details die anforderung kommt und mit addScript das skript noch verfügbar gemacht. jetzt schau ich einfach mal, wie weit ich damit komme.
    Interpunktion und Orthographie dieses Beitrages ist frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

+ Antworten

Lesezeichen

Berechtigungen

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