Frank S.: AJAX ResponseText und JSON

Beitrag lesen

Hallo zusammen,

Ich hab da mal wieder seit Stunden ein Problem, was mich bald wahnsinnig macht.

Ich will eine Anwendung bauen, die über AJAX Datensätze alle 2 Sekunden ausliest und entsprechend aktualisiert.
Die PHP-Datei sieht wie folgt aus:

<?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);  
  
  
?>

Die Datei, die de AJAX-Aufruf ausführt, sieht so aus:

<!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/json2.js" type="text/javascript"></script>  
    <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>

Das Decodieren des JSON Return-Werts funktioniert allerdings nicht. Das Skript bricht einfach an der Stelle ab ohne wenigstens einen Fehler zu liefern. Das alert kann ich bereits nicht mehr sehen!?!

Kann mir da bitte jemand helfen?

Wenn ich statt responseText einfach den String in den Code kopiere, der in das div "ziel" geschrieben wird, funktioniert es.

Gruß,
Frank