Hi,
ich möchte eine Seite dynamisch gestalten. Ich möchte, ohne die Seite neu zu laden Datenbankanfragen machen. Ich weiß nicht womit ich anfagen soll.
Ich möchte z.B. Drag 'n' Drop', was anklicken oder während der Eingabe (wie Google) was suchen im Textfeld.
Gruß
Franky
AJAX json oder jquery oder plain js
Woher sollen wir wissen, womit du anfangen sollst? Was ist denn ueberhaupt deine Frage?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Es gibt halt mehrere Möglichkeiten. Entweder man schickt Ergebnisse zum Client via JSON und zwar Rohdaten, die dann in JS zu html verwurstet die aktuelle Seite ersetzt/ergänzt...
Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann. OK, man könnte was in JS nehmen, aber dann hat man einmal Template-Engine auf dem Server und wahrscheinlich eine anders funktionierende auf dem Client.
Also mach ich es in PyLucid teilweise so, das fertig gerenderte HTML-Bröckchen als JSON übermittelt werden und auf dem Client dann ein Teil der Seite ersetzten. Ist natürlich langsamer, aber dafür braucht man weniger Logik in JS und kann das gewohnte Template-System auf dem Server nutzten...
Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann. OK, man könnte was in JS nehmen, aber dann hat man einmal Template-Engine auf dem Server und wahrscheinlich eine anders funktionierende auf dem Client.
Also mach ich es in PyLucid teilweise so, das fertig gerenderte HTML-Bröckchen als JSON übermittelt werden und auf dem Client dann ein Teil der Seite ersetzten. Ist natürlich langsamer, aber dafür braucht man weniger Logik in JS und kann das gewohnte Template-System auf dem Server nutzten...
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
@FrankTheFox:
Drag'n'Drop hat erstmal nix mit AJAX zu tun, Anklicken kannst du auch in plattem HTML.
Gruß, noisefloor
Hm? Du kannst doch mittels JS das von der Template-Engine generierte HTML manipulieren. Manipulieren in dem Sinn, dass man z.B. Werte für Felder einsetzten kann oder bestimmte Elemente ausblendet.Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann.
@FrankTheFox:
Drag'n'Drop hat erstmal nix mit AJAX zu tun, Anklicken kannst du auch in plattem HTML.
Gruß, noisefloor
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Klar, kann man das machen. Kommt halt auf die konkrete Anwendung an. Möchte man nur wenige Daten "tauschen" oder einen ganzen HTML-Block auswechseln.noisefloor hat geschrieben:Hm? Du kannst doch mittels JS das von der Template-Engine generierte HTML manipulieren. Manipulieren in dem Sinn, dass man z.B. Werte für Felder einsetzten kann oder bestimmte Elemente ausblendet.Ich finde diesen Weg allerdings blöd, weil man so keine Template-Engine nutzten kann.
z.B.: Eine Tabelle: Man kann die neuen Tabellen Daten Nackt als JSON bekommen und Zelle für Zelle die neuen Werte per JS eintragen. Man könnte aber auch im AJAX Request gleiche die neue Tabelle als HTML bekommen und in der Seite austauschen...