Ausgabe undefined in Ajax Script

Spelvin

Mitglied
[gelöst]Ausgabe undefined in Ajax Script

Hallo Leute,
ich nutzte auf meiner Seite ein Ajax-Script um Daten aus einer SQL-Abfrage die in einer PHP Datei steht auszulesen. Das ganze funktioniert auch ganz gut, aber als erste Ausgabe zeigt er mir immer "undefined". Wo liegt der Fehler?
Ausserdem würde ich gerne wissen was die 4 und die 200 in der IF-Abfrage bedeuten.
Das Script stammt nicht von mir und ich habe auch keine Ahnung von Ajax. Hoffe ihr könnt mir weiterhelfen.
Code:
<script type="text/javascript">

var req = new XMLHttpRequest();
req.onreadystatechange = function()
{
  if (req.readyState==4 && req.status==200)
  {
     var data = JSON.parse(req.responseText);
   

var str;

    for (var index in data)
{
  var obj = data[index];
  

str += '<table><tr><td><img src="'+obj.imagepfad+'"></td><td>'+obj.name+'</td></tr></table>';



document.getElementById('ausgabe').innerHTML = str;
      
}

  }
}
req.open("GET", "Ausgabe.php");
req.send();

	</script>


<div id=ausgabe></div>
 
Zuletzt bearbeitet:
Für die 4 siehe: http://www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-readystate
DONE (numeric value 4)

The data transfer has been completed or something went wrong during the transfer (e.g. infinite redirects).


Für die 200 siehe: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
10.2.1 200 OK

The request has succeeded. The information returned with the response is dependent on the method used in the request, for example:

GET an entity corresponding to the requested resource is sent in the response;

HEAD the entity-header fields corresponding to the requested resource are sent in the response without any message-body;

POST an entity describing or containing the result of the action;

TRACE an entity containing the request message as received by the end server.

Jetzt zum letzten Punkt: Als aller erstes steht "undefined", weil die Variable "str" zu Beginn keinen Wert hat, also "undefined" ist. Ändere einfach folgende Zeile

Javascript:
//Vorher
var str;

//Nachher
var str = '';

Edit: Nimm die Zuweisung zu "innerHTML" hinter die Schleife. Das ist performanter.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück