Hallo,
Ich versuche mich seit ein paar Tagen an jQuery was bisher im einfachen Stil auch soweit ganz gut funktioniert. Ziel ist es, bei einem Klick auf einen Link weitere Daten aus einer MySQL-Datenbank zu laden. Das ist auf die schnelle eigentlich auch nichts schwieriges, wenn man den nachzuladenden Inhalt immer an der selben Stelle ausgeben will - in meinem Falle wäre das nun oberhalb einer HTML-Tabelle.
Das Problem an der Geschichte ist nun, dass diese Tabelle mitunter doch schonmal etwas länger werden kann (schätze mal bis zu max. 100 Zeilen à jeweils 5 Spalten). Und genau da finde ich das 'oberhalb nachladen' dann unschön, weil der Benutzer, falls er zB. etwas aus Zeile 80 nachlädt, erstmal hochscrollen muss um die Inhalte zu sehen. Ich würde also gerne den jeweiligen Inhalt direkt unter der angeklickten Zeile ausgeben. Das ist ja mittels "<td colspan='5'>" auch machbar. Dann müsste ich jQuery aber zusätzlich zum div (wo der Inhalt reingeladen wird) auch noch eine bis dahin unbekannte ID zuweisen - und genau da fangen meine Probleme an.
JS-Funktion zum laden:
Aufruf jener Funktion:
Ort / Position des nachzuladenden Inhaltes:
Man kann die Position ja nun sicherlich in jede Zeile einmal schreiben, aber dann wird beim klick nicht jenes div geöffnet welches man will sondern nur das erste. Man müsste also dem div noch eine ID (am sinnvollsten wohl die ID die aus PHP kommt und beim klick mitgegeben wird) mitgeben welche durch die Funktion erkannt und dementsprechend an der richtigen Stelle ausgegeben wird.
Das heisst im Klartext: Bei einem klick müsste eine neue Zeile an der richtigen Stelle eingefügt und der Inhalt nachgeladen werden.
Eine Lösung dafür habe ich bisher noch nicht gefunden.
Für Tips und Ratschläge danke ich schon im Voraus.
Ich versuche mich seit ein paar Tagen an jQuery was bisher im einfachen Stil auch soweit ganz gut funktioniert. Ziel ist es, bei einem Klick auf einen Link weitere Daten aus einer MySQL-Datenbank zu laden. Das ist auf die schnelle eigentlich auch nichts schwieriges, wenn man den nachzuladenden Inhalt immer an der selben Stelle ausgeben will - in meinem Falle wäre das nun oberhalb einer HTML-Tabelle.
Das Problem an der Geschichte ist nun, dass diese Tabelle mitunter doch schonmal etwas länger werden kann (schätze mal bis zu max. 100 Zeilen à jeweils 5 Spalten). Und genau da finde ich das 'oberhalb nachladen' dann unschön, weil der Benutzer, falls er zB. etwas aus Zeile 80 nachlädt, erstmal hochscrollen muss um die Inhalte zu sehen. Ich würde also gerne den jeweiligen Inhalt direkt unter der angeklickten Zeile ausgeben. Das ist ja mittels "<td colspan='5'>" auch machbar. Dann müsste ich jQuery aber zusätzlich zum div (wo der Inhalt reingeladen wird) auch noch eine bis dahin unbekannte ID zuweisen - und genau da fangen meine Probleme an.
JS-Funktion zum laden:
HTML-Code:
function getContent(url){ $('#inhalt').html('<img src="i/ajax-loader.gif" width="32" height="32" alt="Laden..."><br />Daten werden geladen'); $('#inhalt').load(url); };
PHP-Code:
echo "<td class=\"Q\"><a href=\"#\" ";
echo "onclick=\"getContent('antrag_detail.php?id=".$row['Id']."');\">Details</a></td>\n";
PHP-Code:
echo "<div id=\"inhalt\"></div>\n";
Das heisst im Klartext: Bei einem klick müsste eine neue Zeile an der richtigen Stelle eingefügt und der Inhalt nachgeladen werden.
Eine Lösung dafür habe ich bisher noch nicht gefunden.
Für Tips und Ratschläge danke ich schon im Voraus.
Kommentar