PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle/Array nach Teillöschung neu anzeigen



Jor
27-07-2009, 21:54
Hallo Javascript-Gemeinde,

nach langem vergeblichen Testen und gleicher erfolgloser Internetsuche hoffe ich, dass ich von euch ein Tipp bekomme, wie folgendes umsetzen kann:
Eine *.php-Seite hat den Header-Teil mit den allgemeine Inhalten und einem SQL-Query, der Daten aus einer MySQL-DB holt, in utf_8 decodiert und per
json_encode() an eine Javascript-Variable übergibt. EinTeil der Daten wird per Javascript aus dem Array geholt und per document.write im Dokument ausgegeben. Nun möchte ich auf einen Button klicken (ist schon vorhanden, funzt aber noch nicht) und eine Zeile der Tabelle soll gelöscht sein. Das stelle ich mir so vor, dass der Array-Eintrag über den Index gelöscht wird (z. B. content.splice(3,1)) und dann die Seite neu aufgebaut wird, da der Eintrag im Array nicht mehr enthalten ist, wird die entsprechende Zeil auch nicht mehr angezeigt und fehlt somit komplett. Wie kann ich das mit dem "Neuzeichnen"
der Seite realisieren? Habe schon diverse Übungen hinter mir, aber... :confused:
Oder gibt es dafür sogar ein Beispiel, wo ich was ableiten kann?

Viele Grüße
jor

msi
28-07-2009, 01:03
ich wrüde einfach das DOM Element im Browser löschen.
Wenn du zB deine Daten in einer Tabelle hast:


<tr><td>eine spalte></td><td><a class="loesche">loeschen</a></td></tr>


würd ich das zum löschen der spalte nutzen, sieht auch noch schön aus (jquery wird benötigt)


$('.loesche').click( function() { $(this).parent().parent().children().fadeOut(1000, function() { $(this).parent().remove()} ) });

du musst natürlich noch den server informieren, dass die daten gelöscht wurden.

Jor
28-07-2009, 07:14
Moin moin MSI,

vielen Dank für deine Antwort. Da ich noch nicht so sicher unter Javascript bin, ist sie für mich um so mehr wert. :) Aber mir ist noch ein Fehler unterlaufen, ich möchte Tabellenzeilen nicht nur löschen können, sondern auch hinzufügen können. Dabei soll dann das ANzeigen etc. alles im Dokument geteuert werden, ohne ein neues Laden der Daten vom Server.
Daher habe ich mir vorgestellt, dass ich eine Funktion habe, die an Hand der Array-Einträge, Kardinalität, die Tabelle (oder Seite, aber ohne Serverzugriff)
bei Veränderung neu aufbaut und anzeigt.
Deinen Lösungsweg werde ich mal versuchen, vielleicht wird mir dann auch schon Einiges klarer.

Danke!

msi
29-07-2009, 12:32
zum Einfügen würde ich jquery append nutzen:

http://docs.jquery.com/Manipulation/append


$('.add').click( function() { $('table').append('<tr><td>test></td><td>l</td></tr>'); $('table tr:last td').fadeOut(0).fadeIn(1000); });

Jor
29-07-2009, 16:13
jep, das sollte klappen. Ich werde es ausprobieren, denke aber dass es genau das ist, was mir gefehlt hat. Nur muss ich das Event richtig hinbekommen.

Vielen Dank!:) :)