ich sende aus einem jQuery-Overlay (fancybox) ein Formular per Post ab.Dabei wird natürlich die Seite neu geladen und die Daten in der Liste angezeigt. Leider steht die Seite natürlich nach dem Reload natürlich nicht mehr an der Position der Liste vor dem Aufruf des Formulars.
Du kannst die ID des anzuzeigenden Elementes als Anker in die Ziel-URL des Formulars einsetzen: <form method="post" action="verarbeiten.bla#sp23"> zusammen mit <section id="sp23">
Ist die neue ID nicht bekannt oder, was ich beachtenswert finde, möchtest du vermeiden, dass der Nutzer auf der per POST abgerufenen Verarbeitungs-URL rumfuhrwerkt (und bei Neuladen oder Zurückgehen unnötige "Sollen die Formulardaten erneut gesendet werden?"-Rückfragen beantworten muss, geschweige denn, einen Eintrag doppelt anlegt), dann sollte dein Skript statt der neuen Seite lieber eine Weiterleitung 303 an die Ziel-URL ausgeben.
303 ist extra gedacht, um nach dem Verarbeiten von POST-Anfragen auf eine Nicht-POST-Seite weiterzuleiten; das Ziel der Weiterleitung wird per GET abgerufen. Das kann auch dieselbe URL sein, der Punkt ist, dass die URL im Browser nicht mit POST vermerkt ist und besagte Unbequemlichkeiten vermieden werden.
Und bei der Gelegenheit kannst du natürlich auch gleich die gewünschten ID in der Seite ansteuern lassen, denn die ist dir ja spätestens nach der POST-Verarbeitung bekannt und kann als Weiterleitungsziel einbezogen werden.
Ich könnte das Formular natürlich mit einem Ajax-Post absenden. Dann erscheint logischerweise aber nicht der neue Eintrag in der Liste.
Du kannst das verarbeitende Skript nur den HTML-Code für den neuen Eintrag mitgeben und ihn per appendChild in die bestehende Seite einfügen. Du sparst damit ein komplettes Neuladen der Seite, andererseits ist der Programmieraufwand eventuell etwas höher als beim bloßen Absetzen einer 303-Weiterleitung mit Anker-URL.