Beim laden der Webseite einmal refreshen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
ansprechpartner
befehl
check
code
datenbank
datum
email
fehler
firmenname
formular
header
herstellen
http
kommando
kunde
ort
set
telefonnummer
url
verbindung
-
Ich habe folgendes Problem:
Wenn ich Daten (meiner Datenbank) über meiner Webseite ändern möchte (hab mir dafür ein Formular gebastelt) wird nachdem die Daten erfolgreich geändert wurden - die alten Daten weiterhin angezeigt - erst mit einem F5 (Refresh) werden die Daten bei dem Formular richtig angezeigt.
Hier ein Bild vom Formular
http://s1.directupload.net/file/d/3245/5r75wtva_jpg.htm
Jetzt möchte ich am liebsten, dass wenn die Formularseite geladen wird sofort ein Refresh erfolgt oder der Cache einmal gelöscht wird.
Hab schon mehrere Methoden ausporbiert, wie:
<meta http-equiv="refresh" content="0; URL=zuDieserSeite.htm">
<meta http-equiv="refresh" content="0; URL=http://www.Ihre-Domain.de/zuDieserSeite.htm">
Bei diesem Meta Refresh wird die Seite nur regelmäßig neugeladen, suche eine Möglichkeit diese Seite einmalig neu zu laden.
Wenn ich dadrum eine Schleife baue, ignoriert der Meta Refresh diese einfach.
Ausserdem hab ich das noch mit Javascript versucht über window.location.reload() nur leider funktioniert das nur mithilfe eines Buttons.
Am liebsten wäre es mir wenn der reload automatisch ausgeführt wird und nur einmalig.
Kann mir vielleicht jemand helfen ?
Beitrag zuletzt geändert: 4.5.2013 2:19:44 von sash111 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ohne aussagefähigen Code wird dir kaum geholfen werden können.
Eine Möglichkeit könnte AJAX (XMLHttpRequest und onreadystatechange) sein. -
Zusatz von karlsve:
WICHTIG: Diese Vorschläge werden eine Dauerschleife zur Folge haben und sind daher nicht zielführend. Zu Lehrzwecken, wie man es nicht machen sollte, bleiben sie jedoch hier stehen.
PHP Weiterleitung:
oder<?php header("Location: http://www.example.com/"); ?>
<?php header("refresh:2;"); //2 sind die sek ?>
Javascript:
oder<script language ="JavaScript"> document.location.href="http://www.neueadresse.de"; </script>
<script language ="JavaScript"> window.location.replace('http://www.neueadresse.de'); </script>
Beitrag zuletzt geändert: 5.5.2013 8:40:29 von karlsve -
henrysoftware schrieb:
Ja nee, is klar.
PHP Weiterleitung:
oder<?php header("Location: http://www.example.com/"); ?>
<?php header("refresh:2;"); //2 sind die sek ?>
Javascript:
oder<script language ="JavaScript"> document.location.href="http://www.neueadresse.de"; </script>
<script language ="JavaScript"> window.location.replace('http://www.neueadresse.de'); </script>
Und die nette Dauerschleife sorgt dann für ne Never-ending-Story, right?
Vielleicht sollte der TE zunächst die Fragen beantworten oder Quelltext zeigen, damit nicht wie wild spekuliert werden muss.
Ruft das Formular beim abschicken sich selbst auf?
Dann kann es ja wohl kaum eine statische htm-Seite sein.
In dem Fall ist dieses Thema im falschen Forum, da die Lösung über PHP oder .htaccess realisierbar wäre.
Beispiel PHP
header("Cache-Control: must-revalidate, no-store, no-cache, max-age=0, pre-check=0, post-check=0"); header("Pragma: no-cache");
Beispiel .htaccess
Header set Cache-Control "must-revalidate, no-store, no-cache, max-age=0, pre-check=0, post-check=0" Header set Pragma "no-cache"
Oder ruft das Formular beim abschicken eine andere Seite auf?
Dann wäre eine Aktualisierung über JavaScript möglich, wobei beide erwähnten JavaScript- und HTML-Weiterleitungen nicht zutreffend sind.
Weiterer Tipp: Einfach die Lima-Suche nutzen. -
oder so geht es auch:
<?php if($_GET['reload'] != "none"){ echo '<meta http-equiv="Refresh" content="1; URL=http://www.deineurl.de/datei.php?reload=none">';} ?>
-
Sry das ich jetzt erst antworte. Danke erstmal für die vielen Antworten, leider funktionieren die Methoden nicht, meist bekomm ich eine Dauerschleife wo er dauernt die Seite refresht.
Mein Code sieht folgendermaßen aus:
<html> <head> <title>Eingabemaske</title> </head> <body> <?php // Verbindung zur Datenbank herstellen require_once "dbconnect.php"; $sql="SELECT * FROM Kundenliste WHERE ID=$_GET[id]"; $result=mysql_query($sql) or exit("Fehler im SQL-Kommando: $sql"); if ($row=mysql_fetch_row($result)) { echo "<form method=\"post\" action=\"tabelle-bearbeiten.php?id=$id_result\">\n"; echo "<input type=\"hidden\" name=\"ID\" readonly value=\"$row[0]\">\n"; echo "<br>Datum: <input type=\"text\" name=\"Datum\" readonly value=\"$row[1]\">\n"; echo "<br>Telefon: <input type=\"text\" name=\"Telefonnummer\" value=\"$row[2]\">\n"; echo "<br>Ansprechpartner: <input type=\"text\" name=\"Ansprechpartner\" value=\"$row[3]\">\n"; echo "<br>Firmenname: <input type=\"text\" name=\"Firmenname\" value=\"$row[4]\">\n"; echo "<br>Strasse: <input type=\"text\" name=\"Strasse\" value=\"$row[5]\">\n"; echo "<br>PLZ: <input type=\"text\" name=\"PLZ\" value=\"$row[6]\">\n"; echo "<br>Ort: <input type=\"text\" name=\"Ort\" value=\"$row[7]\">\n"; echo "<br>Mobilfunkanbieter: <input type=\"text\" name=\"Mobilfunkanbieter\" value=\"$row[8]\">\n"; echo "<br>MVertragslaufzeit <input type=\"text\" name=\"MVertragslaufzeit\" value=\"$row[9]\">\n"; echo "<br>Festnetzanbieter: <input type=\"text\" name=\"Festnetzanbieter\" value=\"$row[10]\">\n"; echo "<br>FVertragslaufzeit: <input type=\"text\" name=\"FVertragslaufzeit\" value=\"$row[11]\">\n"; echo "<br>Email: <input type=\"text\" name=\"Email\" value=\"$row[12]\">\n"; echo "<br>Sonstiges: <input type=\"text\" name=\"Sonstiges\" value=\"$row[13]\">\n"; echo "<br><br><input type=\"submit\" name=\"submit_eingabemaske\" value=\"Abschicken\">\n"; echo "<input type=\"reset\" name=\"reset\" value=\"Reset\">\n"; echo "</form>\n"; } else echo "Fehler: ID $_GET[id] nicht vorhanden\n"; ?> </body> </html>
Danach wird man zur tabelle_bearbeiten.php seite geschickt mit der ID des Eintrages der geändert werden soll, der sieht folgenderweise aus:
<html> <head> <title>Tabelle bearbeiten</title> </head> <body> <?php // Verbindung zur Datenbank herstellen require_once "dbconnect.php"; // übergebene Daten zurück in die Datenbank schreiben if (isset($_POST[submit_eingabemaske])) // Submit-Schaltfläche der Eingabemaske wurde betätigt { // SQL-Kommando: Ändern von Einträgen $sql="UPDATE Kundenliste SET Datum='$_POST[Datum]', Telefonnummer='$_POST[Telefonnummer]' , Ansprechpartner='$_POST[Ansprechpartner]', Firmenname='$_POST[Firmenname]', Strasse='$_POST[Strasse]', PLZ='$_POST[PLZ]', Ort='$_POST[Ort]', Mobilfunkanbieter='$_POST[Mobilfunkanbieter]', MVertragslaufzeit='$_POST[MVertragslaufzeit]', Festnetzanbieter='$_POST[Festnetzanbieter]', FVertragslaufzeit='$_POST[FVertragslaufzeit]' , Email='$_POST[Email]', Sonstiges='$_POST[Sonstiges]' WHERE ID=$_POST[ID]"; // SQL-Kommando ausführen mysql_query($sql) or exit("Fehler im SQL-Kommando: $sql"); } ?> Daten erfolgreich eingetragen. <script type="text/javascript"> setTimeout("self.location.href='http://sash111.lima-city.de/kunden.php'",4000); </script> </body> </html>
Und nachdem man von der kunden.php Seite den Eintrag versucht nochmals zu bearbeiten, stehen halt die alten Daten noch in diesem Formular. Erst bei einen Refresh F5 tauchen die neuen Daten auf.
Benutze Mozilla Firefox und habe das mal ausprobiert mit dem Meta Befehl damit kein Cache erzeugt wird, nur irgendwie ignoriert der den Meta Befehl hab ich das Gefühl, also er erzeugt trotzdem Cache. Hab den Befehl in den html Header geschrieben. Irgendwie funktioniert das damit auch nicht, oder ich mach was falsch.
Hab nun eine Lösung des Problems mit den Refresh über Javascript hinbekommen. Der Code sieht wie folgt aus:
<script type="text/javascript"> <body onload="parent.refresher()" function refresher(){ if(this.name = status){ this.name = was; window.reload(); } } </script>
Beitrag zuletzt geändert: 4.5.2013 16:50:25 von sash111 -
Mich wundert, dass der gepostete Code überhaupt funktioniert.
Die korrekte Syntax für Superglobals wie $_GET() oder $_POST() ist:
$_POST['abc'] bzw. $_POST["abc"], was bei deinem Code nicht der Fall ist.
Für deine "tabelle_bearbeiten.php" habe ich das mal für dich gemacht.
Außerdem habe ich die SQL in eine lesbarere Form gebracht und berichtigt.
Das Refresh-Problem wird mittels eines Redirects an die "kunden.php" mit einem Get-Request gelöst (Zeile 38).
<html> <head> <title>Eingabemaske</title> </head> <body> <?php // Verbindung zur Datenbank herstellen require_once "dbconnect.php"; // übergebene Daten zurück in die Datenbank schreiben if (isset($_POST["submit_eingabemaske"])) // Submit-Schaltfläche der Eingabemaske wurde betätigt { // SQL-Kommando: Ändern von Einträgen // Hier wurden von mir Korrekturen vorgenommen $sql="UPDATE Kundenliste SET Datum='{$_POST['Datum']}', Telefonnummer='{$_POST['Telefonnummer']}' , Ansprechpartner='{$_POST['Ansprechpartner']}', Firmenname='{$_POST['Firmenname']}', Strasse='{$_POST['Strasse']}', PLZ='{$_POST['PLZ']}', Ort='{$_POST['Ort']}', Mobilfunkanbieter='{$_POST['Mobilfunkanbieter']}', MVertragslaufzeit='{$_POST['MVertragslaufzeit']}', Festnetzanbieter='{$_POST['Festnetzanbieter']}', FVertragslaufzeit='{$_POST['FVertragslaufzeit']}' , Email='{$_POST['Email']}', Sonstiges='{$_POST['Sonstiges']}' WHERE ID='{$_POST['ID']}'"; // SQL-Kommando ausführen mysql_query($sql) or exit("Fehler im SQL-Kommando: $sql"); } header("Location: http://sash111.lima-city.de/kunden.php?id={$_POST['ID']}"); ?> /* Das solltest du entfernen Daten erfolgreich eingetragen. <script type="text/javascript"> setTimeout("self.location.href='http://sash111.lima-city.de/kunden.php'",4000); </script>*/ </body> </html>
Die Änderungen bezüglich $_GET["id"] musst du noch vornehmen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage