kostenloser Webspace werbefrei: lima-city


Beim laden der Webseite einmal refreshen

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    sash111

    sash111 hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ohne aussagefähigen Code wird dir kaum geholfen werden können.
    Eine Möglichkeit könnte AJAX (XMLHttpRequest und onreadystatechange) sein.
  4. henrysoftware

    henrysoftware hat kostenlosen Webspace.

    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:
    <?php
    header("Location: http://www.example.com/"); 
    ?>
    oder
    <?php
    header("refresh:2;");  //2 sind die sek
         
         ?>


    Javascript:
    <script language ="JavaScript"> 
    document.location.href="http://www.neueadresse.de"; 
    
    </script>
    oder
    <script language ="JavaScript"> 
    window.location.replace('http://www.neueadresse.de'); 
    
    </script>


    Beitrag zuletzt geändert: 5.5.2013 8:40:29 von karlsve
  5. m******e

    henrysoftware schrieb:
    PHP Weiterleitung:
    <?php
    header("Location: http://www.example.com/"); 
    ?>
    oder
    <?php
    header("refresh:2;");  //2 sind die sek
    ?>

    Javascript:
    <script language ="JavaScript"> 
    document.location.href="http://www.neueadresse.de"; 
    </script>
    oder
    <script language ="JavaScript"> 
    window.location.replace('http://www.neueadresse.de'); 
    </script>
    Ja nee, is klar.
    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.
  6. henrysoftware

    henrysoftware hat kostenlosen Webspace.

    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">';} 
    ?>
  7. Autor dieses Themas

    sash111

    sash111 hat kostenlosen Webspace.

    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
  8. 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.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!