Wie automatisch aktualisieren Sie die Seite nach dem Absenden eines Formulars
Ich habe ein HTML-Formular, wo, wenn ich auf "aktualisieren" werden die änderungen nicht reflektieren und es erfordert eine Aktualisierung, um die änderungen zu sehen.
Aber wenn ich neu laden, es gibt immer Confirm Form Resubmission
.
Ich verwendet <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
was bedeutet, es sendet auf der gleichen Seite.
- Bitte fügen Sie Beispiele Ihrer HTML-Formular, so dass wir sehen können, alle Fehler, die Sie gemacht haben
- Wenn Sie brauchen, einfache Aktualisierung, die Sie verwenden können html-meta-refresh
htmlspecialchars
sollte nicht verwendet werden, zu codieren Pfade. Es ist für die Codierung der Ausgabe.- Es gibt keinen Grund zu verwenden:
$_SERVER['PHP_SELF']
hier. Vor allem mit htmlspecialchars. Lassen Sie einfach die Aktion leer. Dies beantwortet nicht die Frage, Wie Sie automatisch aktualisieren Sie die Seite nach dem Absenden eines Formulars, sondern dass die Aktion leere führen würde, die genau die gleiche Sache, die Sie versuchen zu tun (was falsch ist).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie aktualisieren Sie die Seite in mehrere Art und Weise :
: 1
Weg : 2
Weg : 3 (nicht empfohlen)
onsubmit="window.location.reload();"
es scheint, funktioniert das nicht. Also ich nutze die timeout-Funktion in es. Zu machen, damit es funktioniert.Weg : 4
onsubmit="setTimeout(function(){window.location.reload();},5)"
. Erhöhen Sie die Zeit nach Ihren Bedürfnissen, um das Formular abschicken & laden Sie dann auf der Seite. Ich habe aktualisiert die Methoden & Hinzugefügt einige weitere Methoden.Neige ich zum AJAX-Formular:
Wählte ich für diese, um der Lage sein, um schnelle Rückmeldungen an den Benutzer. Wenn Sie nicht wollen, um AJAX verwenden, ein einfaches header('Location: yourPage.php') in der PHP-Datei die Verarbeitung Ihrer form genügt.
Ihre Seite schon neu geladen, nach dem "update", weil
Confirm Form Resubmission
Warnung erscheint. Ich denke das problem ist, dass im php-script, das Ihnen die Anzeige von Daten vor der Verarbeitung neuer Post-Daten.Also das Haupt Problem mit dem, was Sie beschreiben, ist, dass die url-request-Methode ist POST. Wenn Sie die Seite aktualisieren nach dem Absenden des Formulars wird der browser versuchen, erneut zu buchen, nur wie, wenn man auf den submit-button.
Dies ist eigentlich eine sehr Natürliche Art und Weise zu übermitteln von Daten an die url des Formulars generiert wird). Die meisten open-source-CMS wird das gleiche tun und das gleiche Verhalten haben (wordpress, drupal).
Baute ich ein maßgeschneidertes system, dass die gleiche Sache Tat, hatte aber einige Beschwerden über refresh auslösen der "Sind Sie sicher, dass Sie möchten, senden Sie das Formular wieder" anstatt einfach nur das Neuladen des Formulars. Also ich löse das Problem mit @Bruce s Lösung. Am unteren Rand meiner Seite, bevor ich die Ausgabe alles, was ich tun ein redirect auf die aktuelle url. Diese änderungen der vorherigen Seite im Browser Augen ein GET anstatt POST-und verhindert, dass die re-Vorlage Warnung.
Als für Ihre Daten nicht aktualisieren, werden Sie wahrscheinlich bauen Sie Ihre form vor der Verarbeitung der post. Stellen Sie sicher, dass die Verarbeitung der post ist die erste operation, die Sie durchführen.
Mein system ist sehr anders als in diesem Beispiel-code, so erwarte nicht, dass dies funktioniert out of the box. Aber es sollte Ihnen die richtige Idee.