Hallo,
stehe derzeit wohl etwas auf dem Schlauch.
Bin dabei eine Tabelle mit einer Ajax/JS Funktionalität zu erweitern.
In der letzten Spalte will ich im Anschluss wenn die Tabelle komplett geladen ist oder während des Anzeigens, eine JavaScript Funktion aufrufen die überprüft ob die dort angezeigte URL noch verfügbar ist.
Stehe derzeit eigentlich nur vor dem Problem, wie ich am besten mit onload oder die Zellen durchgehe, um dann die Überprüfung (JS Funktion aufrufen) zu machen.
Mit einem Button und onclick wäre es ja kein Problem.
Habe schon versucht in der Zelle folgende Anweisung zu verwenden
Schon testweise mit folgenden Statement gearbeitet, was auch funktioniert.
<form method='post'><input type='button' value="checkurl" name="checkurl" onclick="urlcheck('<?= $courseid ?>', '<?= $url_id ?>')" /></form>
In jeder Zelle können mehrere URLs drin stehen, die dann überprüft werden müssten.
Dachte auch schon oberhalb der Button einen zusätzlichen Button einzubauen, den der Benutzer dann einmal anklicken muss.
Pro Zelle einen Button kann ich den Benutzer nicht zumuten, da es schnell über 100 Buttons wären.
Nachtrag: Was ich mir auch schon dachte, das ich an die Stelle ein Hidden Feld setze und er geht dann die Hidden Felder in einer JS Schleife durch und liefert an diese Stelle ein entsprechendes result.
Ob nun mit Jquery oder ohne spielt keine Rolle, bin über jeden Tip dankbar
Lösung: Konnte inzwischen mein Problem selber lösen. Falls jemand ein ähnliches Problem mal hat.
In der Zelle wo die URL erscheint
echo "<div class='ids'>";
echo "<span title='" . $courseid . "_" . $url_id . "' name='".$url_text."' value='".$url_link."' /><div id='course" . $courseid . "_url" . $url_id . "' /></div>";
Mein JS Snippet
$(document).ready(function () {
$("div.ids").each(function () {
var ids = $(this).find("span").attr("title");
var url = $(this).find("span").attr("value");
var url_text = $(this).find("span").attr("name");
var res = ids.split("_");
var courseid = res[0];
var urlid = res[1];
$.ajax({
method: "POST",
url: "linkchecker_ajax.php",
async: false,
data: {url: url, url_text: url_text},
success: function (output) {
document.getElementById("course" + courseid + "_url" + urlid).innerHTML = output;
}
});
});
});
Alles anzeigen
Bei der AJAX Datei überprüfe ich per CURL die URL (dies ist kein Hexenwerk und überall nachzulesen, wie das geht und erspare mir mal eben den Code hier zu posten...)
Ausgabe: In der Zelle