Zu dem bearbeiteten Datensatz springen

ditzen

Grünschnabel
Hallo,

ich habe folgendes Problem: Ich lese aus einer Datenbank eine Menge Daten aus und schreibe die Daten zum bearbeiten in eine Tabelle mit Formular-Felder, schön brav Zeile für Zeile untereinander. Wenn ich jetzt einen Datensatz bearbeiten will, scrolle ich zu der gewünschten Zeile, ändere die Werte und klicke auf speichern.

Das funktioniert auch alles bestens, nur das PROBLEM ist jetzt, dass das Script die Seite neu lädt und NICHT wieder an die Zeile zurückspringt, die ich momentan bearbeitet habe.

Meine Frage ist nun, mit welcher Funktion kann ich sozusagen an die Stelle der Seite springen, die ich gerade bearbeitet habe? Die Daten werden mit submit übergeben, ich habe also zum Beispiel die Artikelnummer und könnte die Seite nach dieser durchsuchen und an die Stelle der Seite springen, aber wie?
 
Das habe ich mir auch schon überlegt, aber ist es nicht möglich eine Suche wie in einem Browser (Firefox zum Beispiel Bearbeiten --> Seite durchsuchen) einzubauen?
 
Ich meinte ja so in der Art, also eine Seite durchsuchen kann ja jeder Browser, ... gibt es da keine "function" in PHP?

Ich übergebe die Werte beim speichern mit submit, wie soll ich da einen Anker-Verweis hinten hinbasteln?
 
PHP ist eine serverseitige Skripsprache und liefert wenn überhaupt nur die Daten für das HTML-Dokument.

Mein Idee könnte etwa wie folgt realisiert werden: Weise jedem Datensatz eine ID im HTML-Sinne zu, beispielsweise dieselbe ID des Datensatzes (id="ID12345"). Nach der Bearbeitung kannst du darauf mit einer Umleitung verweisen, etwa:
PHP:
header('Location: /foobar#ID12345');
 
Das PHP eine serverseitige Sprache ist, ist mir schon klar, aber das mit der "id" war mir doch zu kompliziert :suspekt: , hab es einfach mit JavaScript gelöst :p

Zuerst diesen Skript zwischen <head> und </head> einfügen:

HTML:
<script language="JavaScript">
<!--
var NS4 = (document.layers);
var IE4 = (document.all);
var win = this;
var n   = 0;
function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
if (n == 0) alert(str + " konnte nicht gefunden werden.");
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
n = 0;
findInPage(str);
}
//else
 //alert(str + " konnte nicht gefunden werden.");
}
}
return false;
}
/-->
</script>

und weiter unten dann einfach einen Onload-Befehl:

PHP:
echo "<body onload='findInPage(".$datanum.")'>";

Die Variable $datanum übergebe ich ja sowie beim Abschicken der Datensätze, alles bestens, läuft perfekt ^^
 
Mein Gedanke war folgender: Jeder Datensatz – dargestellt duch ein gruppierendes Element, etwa eine Tabellenzeile, ein div-Element oder ein Formular – bekommt auf der Übersichtseite eine ID zugewiesen. Dafür kann etwa der künstliche Primärschlüssel verwendet werden. Nachdem der Datensatz geändert wurde, wir auf den geänderten Datensatz in der Übersicht mithilfe der ID umgeleitet.
 
Zurück