Monk: Ajax Problem

Hallo. Ich bastele derzeit an einer Webseite. Diese Seite enthält einige div-Container, die ich mit Hilfe von Ajax (prototype-Framework) ein- und ausblenden kann. Nun ist es aber erforderlich, dass jeder div-Container eine bestimmte id zugewiesen bekommt, damit er durch einen Link angesprochen werden kann. Dies alles funktioniert hervorragend.

Nun habe ich aber das Problem, dass ich jetzt an einem Kommentarsystem verzweifele. Jeder Kommentar erscheint in einem div-Container. Der Inhalt wird aus einer Datenbank geholt. Der User soll die Möglichkeit haben, seinen Kommentar editieren zu können. Das klappt so erstmal ganz gut. Nur möchte ich nicht, dass das Formular zum Editieren jedes mal neu geladen werden muss. Ich wollte es mit Hilfe von ajax umsetzen. Es soll also dynamisch eingeblendet werden. Genau das ist mein Problem. Wenn ich nun meinem div eine id zuweise, wird jeder "Kommentar-div" dadurch angesprochen.

Am besten ich poste hier erstmal den Quellcode:

<script src="javascripts/prototype.js" type="text/javascript"></script>";  
<script src="javascripts/scriptaculous.js"  
type="text/javascript"></script>";  
<script type="text/javascript" language="javascript">";  
Effect.toggle('id_of_element', 'appear')";  
Effect.toggle('id_of_element', 'slide', { delay: 0.5 })";  
Effect.toggle('id_of_element', 'blind', { duration: 2.0 })";  
</script>;

"Die Bibliothek wird geladen"

Hier der Link, der unter jedem Kommentar-div zu sehen sein soll:
<a href="#" onclick="Effect.toggle('toggle_appear', 'appear'); return false;">Editieren</a>

Dann der div:
<div id="toggle_appear"
"Der div wird durch die Bezeichnung "toggle_appear" im link erkannt. Gebe ich also jedem div eine eigene Idee ist das alles kein Problem. Aber in meinem Falle werden die ja dynamisch erzeugt.

Kann mir jemand helfen?

  1. Mahlzeit,

    Wenn ich nun meinem div eine id zuweise, wird jeder "Kommentar-div" dadurch angesprochen.

    Hat jedes div eine eigene ID?
    IDs dürfenimmer nur ein eiziges mal vorkommen.

  2. "Der div wird durch die Bezeichnung "toggle_appear" im link erkannt. Gebe ich also jedem div eine eigene Idee ist das alles kein Problem. Aber in meinem Falle werden die ja dynamisch erzeugt.

    Wo ist das Problem dabei, jedem Kommentar eine eigene ID zu geben?

    Serverseitig generierst du den HTML-Code sicher in einer Schleife. Also hast du auch einen Schleifenzähler. Und in der Datenbank hat der Kommentar sicherlich eine ID. Die könntest du auch verwenden. Wahrscheinlich schreibst du die sowieso irgendwo in den HTML-Code, wenn sich dort ein Formular zum Editieren des Kommentars befindet.

    Alternativ kannst du Einblend-Link und einzublendendes Element in ein gemeinsames Element legen. Vom angeklickten Element steigst du im DOM zum gemeinsamen auf (mit up) und suchst von dort aus das einzublendende (mit select).

    Mathias