User since
2006-06-09
76
Artikel
BenutzerIn
Hallo,
Ich bin mit meinem Gästebuch-Adminabereich inzwischen so weit, dass der Admin auf Klick auf einen Beitrag den Beitrag editieren kann. Es werden eben mehrere Textfelder erstellt, in denen die einzelnen Daten verändert werden können.
Jedes dieser Textfelder stellt also eine Spalte in einer Datenbank dar. Z.B. name, Eintragstext, Eintragsheader, Datum...
Jeder Eintrag hat auch eine ID, diese kann ich mit einer JS-Funktion über das DOM herausfinden, nachdem der veränderte Beitrag gespeichert werden soll. In der DB gibt es eine Schlüsselspalte, die genau diese ID ebenfalls besitzt.
Nun muss nach dem Klick auf den Save Button:
1. ID des Eintrages ermittelt werden (habe ich)
2. Veränderungen in dem Eintrag müssen an ein Perlscript übergeben werden, das dann die DB entsprechend verändert
3. Eine weitere JS-Funktion wird aufgerufen, in der zuerst die Possition des Scrolleiste ermittelt wird, dann wird Seite neu geladen (mit den veränderungen in der DB, is ja klar) u. die Info an welcher Seite die Scrolleiste stand wird so angeängt URL?pos=yPosition
4. Seite lädt sich neu u. springt durch die übergebene Variable wieder an die selbe Stelle wie zuvor. Fertig (Die letzten zwei Punkte habe ich auch schon realisiert)
Ich frage mich also nun, wie kann ich den Aufruf des Perlscriptes dazwischenklemmen, so dass dieser geschieht, die DB verändert wird u. gleichzeitig mein JS weiterläuft?
Oder kann etwa ein Eintrag in die DB nur dann geschehen, wenn die Seite neu geladen wird u. ich in meinem Hauptperlscript in dem ich die html auch erzeuge eine entsprechende Funktion aufgerufen wird?
Allerdings hätte ich dann das Problem dass die Sache mit der übergebenen Variable für die Position erheblich komplexer wird, da ich dazwischen auch noch die Seite neu laden muss und und und, außerdem ist mein Script für die HTML-Erstellung schon ziehmlich überladen.
Wäre dankbar für gute Ratschläge!
User since
2004-06-17
305
Artikel
BenutzerIn
Mir fallen spontan zwei Lösungen ein:
1. Darstellung und Änderung in Deiner HTML-Seite über Ajax steuern.
2. Position nicht an der Scrolleiste festmachen sondern an HTML-Ankern.
Aber so wie ich das verstehe zeigst Du zum Editieren immer das gesamte Gästebuch an. Warum? Ich hole mir immer nur den Eintrag auf den Bildschirm, den ich auch editieren will. Und alles ohne JavaScript ...
User since
2003-08-04
7321
Artikel
ModeratorIn
wieso brauchst du javascript, um die ID zu ermitteln?\n\n
<!--EDIT|esskar|1153322029-->
User since
2006-06-09
76
Artikel
BenutzerIn
Naja, der Admin sieht alle Gästebucheinträge, und dann kann er einen Anklicken. Das javascript muss dann ermitteln welcher Eintrag angeklickt wurde. Oder wie denkt ihr darüber?
Immer nur einen Eintrag möchte ich eigentlich nicht anzeigen.
User since
2003-08-04
14371
Artikel
ModeratorIn
Ich verwende bei so etwas ein "Formular". Der Admin sieht einen "editieren"-Button, der in einem Formular ist. Da ist auch ein
hidden-Field dabei, in dem die Eintrags-ID steht. Wenn der Admin dann editieren will, kann ich mit dem Skript den entsprechenden Eintrag aus ner Datenbank holen und editieren...
User since
2006-06-09
76
Artikel
BenutzerIn
[quote=renee,20.07.2006, 09:29]Ich verwende bei so etwas ein "Formular". Der Admin sieht einen "editieren"-Button, der in einem Formular ist. Da ist auch ein hidden-Field dabei, in dem die Eintrags-ID steht. Wenn der Admin dann editieren will, kann ich mit dem Skript den entsprechenden Eintrag aus ner Datenbank holen und editieren...[/quote]
Die ID ist ja nicht das Problem.
ich glaube ich löse das ganze jetzt indem ich die Parameter über das Formularfeld mit Post übergebe, an das Perlscript. Dann frage ich ab ob da eine Variable ist, die die Parameter hat, die mir sagen der eintrag soll gelöscht werden, oder editiert werden. Dann gehe ich in die entsprechende Funktion....
Wenn Eintrag editieren übergeben wurde, dann werden anschließend auch noch die ganzen editierbaren Felder mit übergeben um sie in die DB zu schreiben.
nebenbei wird die Possition die ich mit JS in die URL in der Adressleiste übergebe wie bisher übergeben.
Wenn die Seite geladen ist wird das JS wie vorher ausgeführt u. der Browser springt an die Stelle.
Ich hoffe das wird funktionieren, aber was sollte dagegen sprechen?
Eine übergabe sozusagen über Post, die andere mehr oder weniger mit Get. Dürfte sich ja nicht in die Quere kommen.
Da gibts jetzt nurnoch ein Problem:
Wie kann ich wenn ich eine Seite in JS Aufrufe Variablen per POST mit übergeben? Ich habe es bis jetzt nur über die Adressleiste geschafft: document.location.href = document.location.href + "?var=wert";
Funktioniert sowas ähnliches auch per POST??\n\n
<!--EDIT|Danwe|1153387426-->