Ergebnis 1 bis 2 von 2
  1. #1
    inlove21 ist offline Grünschnabel
    registriert
    20-02-2009
    Beiträge
    1

    Datensätze aus Datenbank mit AJAX alle x Sekunden neu laden

    Hallo zusammen,

    Ich bin AJAX-Anfänger und habe seit Tagen ein Problem, bei dem mir in anderen Foren noch niemand helfen konnte:

    Ich will mit Hilfe von AJAX und PHP aus einer Datenbank alle 2 Sekunden Datensätze auslesen und in unterschiedliche Container schreiben.

    Das PHP-Skript, was die Daten ausliest, sieht so aus:

    Code:
    <?php
    
      require_once('php/datenbank.inc.php');
      //require_once('php/JSON/JSON.php');
    
    
      $i  = $_POST["i"];
      $db = new DB();
    
    
      $db->query("SELECT `name`,`vorname`
                  FROM   `t_spieler`
                  WHERE  `t_spielerID`='$i'");
    
      $db->next_record();
    
      $name    = $db->f("name");
      $vorname = $db->f("vorname");
    
      $result = array("nachname"=> $db->f("name"),
                      "vorname" => $db->f("vorname"));
    
      echo json_encode($result);
    
    
    ?>

    Es liefert einen String zurück, der in etwas so aussieht:
    {"nachname":"MUELLER","vorname":"KARL"}

    Die dazu passende PHP-Datei mit der AJAX-Komponente, die das PHP-Skript aufruft, sieht so aus:

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>TEST</title>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
        <script src="js/prototype.js" type="text/javascript"></script>
      </head>
    <body>
    
    <script>
    
            function getData() {
                    
                    var response = new Ajax.PeriodicalUpdater(
                            'ziel',
                            'execute.php', {
                                    method: 'post',
                                    parameters: 'i=' + document.hier.versteckt.value,
                                    frequency: 2,
              onSuccess: function() {
                var antwort = response.responseText.evalJSON();
    
                alert('OK');
    
                feld1.innerHTML =  antwort.nachname;
                feld2.innerHTML = 'aktualisiert: ' + Date();
              }
                             }
        );
     }
    
    </script>
     <input type="submit" onclick="getData()">
    <p>
    
    <div style="width:400px;" id="ziel"></div>
    <div id="feld1"></div>
    <div id="feld2"></div>
    
    <form name="hier">
    <input type="text" name="versteckt" value="12" />
    </form>
    
    </p>
    
    
    </body>
    </html>
    Der Container 'ziel' wird auch korrekt beschrieben. Das Problem ist allerdings, dass ich die Inhalte des JSON-Strings aufsplitten und in unterschiedliche Container schreiben möchte. Daher habe ich im PeriodicalUpdater eine onSuccess-Funktion eingebaut.

    Die Variable Antwort wird jedoch gar nicht erst belegt und der Rest der Funktion (z.B. das alert gar nicht mehr ausgeführt). Es wird allerdings auch nicht einmal eine Fehlermeldung produziert sondern es passiert einfach gar nix.
    Kommentiere ich hingegen die Zeile
    Code:
    var antwort = response.responseText.evalJSON();
    aus, läuft das Skript weiter durch. Lasse ich mich vom alert direkt response.responseText ausgeben, erhalte ich ein "undefined". Hänge ich das evalJSON auch noch mit ins alert, erhalte ich gar nix mehr (es geht kein Fenster mehr auf).

    Hat irgendjemand eine Ahnung woran das liegt und wie man das Problem beheben kann? Bzw. gibt es keine einfacherere Möglichkeit, mit AJAX etwas alle x Sekunden aus einer Datenbank zu lesen und in mehrere unterschiedliche Container zu schreiben?

    Wäre echt super, wenn ihr mir helfen könntet - bislang suche ich seit Tagen vergeblich nach Hilfe!

    Meine PHP-Version ist übrigens 5.2.8, die Version von prototype 1.6.0.3.

    Gruß,
    Frank

  2. #2
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: Datensätze aus Datenbank mit AJAX alle x Sekunden neu laden

    dann wird dein request keine daten liefern. das ist dann aber kein js-Problem.

Ähnliche Themen

  1. WebApp in ein DIV per AJAX laden?
    Von yss im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 13-02-2009, 22:38
  2. Daten aus einer Datenbank mit Ajax ändern
    Von Azyura im Forum JavaScript
    Antworten: 11
    Letzter Beitrag: 12-06-2007, 09:57
  3. :hover (per cssHover.htc) bei ajax request neu laden
    Von Daniel84 im Forum JavaScript
    Antworten: 12
    Letzter Beitrag: 09-01-2007, 22:24
  4. javascript neu laden
    Von oliver82 im Forum JavaScript
    Antworten: 13
    Letzter Beitrag: 22-12-2006, 12:11
  5. Seite nach 60 Sekunden neu laden
    Von onlineuser im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 30-05-2006, 12:23

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •