Wie kann die Werte eines Objektes ausgeben?

redhat99

New member
Hallo,

ich bekomme von PHP ein Success-Objekt zurück.

Code:
Object {{"name":"name","vorname":"vorname","email":"email"}: ""}

mit json_encode sieht es so aus

Code:
{"{\"name\":\"name\",\"vorname\":\"vorname\",\"email\":\"email\"}":""}

wie kann Ich nun in JQuery mit diesem Objekt arbeiten?

obj.name funktioniert nicht..


Code:
success: function(data){
                        console.log(data);
                      
                        //var daten = JSON.stringify(data);
                        //console.log(daten);
                        //alert(daten[0].name);
                        //return data;
                        if(data.name == 'test'){
                            $('.title').html(data.name);
                        }else{
                            alert(data.name);
                        }
                         return data;   
                        },
                    error: function(data){
                        console.log(data)
                    }


Vielleicht kann mir da einer von euch helfen. Stehe irgendwie auf dem Schlauch
 
Hi,

wenn es mehrere Objekte beinhaltet, dann kannst du über "data" iterieren und anschließend auf die einzelnen Objekte zugreifen. In etwa so:
Code:
....
success: function(data) {
  $.each(data, function(index, element) {
    console.log(element.name);
    console.log(element.vorname);
    ....
  });
}
....
 
redhat99, dein JSON sieht komisch aus. Was soll die äußere Klammer denn machen? Wie erzeugst du das JSON in PHP? Oder machst du das manuell durch String Konkatenation?
Wenn ich die weg lasse klappt es mit diesem Code:
HTML:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>redhat99</title>
	<script src="/javascript/jquery.js"></script>
</head>
<body>

<script>
	function iteriere(data){
		jQuery.each(data,function(key,val) {
			console.log(key+' --> '+val);
		});
	}
	iteriere({"name":"name","vorname":"vorname","email":"email"});
</script>

</body>
</html>
 
Nein, das ist ein PHP - Objekt das zurückgegeben wird.

Wenn Ich einen Array zurückgeben lasse geht es auch, habe Ich festgestellt. Muss Ich jetzt immer Objekte in Arrays umwandeln?! Oder gibt es eine andere Lösung?
 
Du kannst in JS an dieser Stelle JSON verwenden, ohne weitere Konvertierung. Da gibt es Hashes, Strings und Arrays. Kodiere dein PHP Objekt mal hiermit: PHP: json_encode - Manual

Oder andersherum, du sendest ein PHP Objekt und musst das dann in JS anders behandeln/konvertieren.
 
okay, ich werde es mal versuchen. Ich habe gestern den halben Tag damit verbracht. Aber mit json_encode ist das Ergebnis so

#{"{\"name\":\"name\",\"vorname\":\"vorname\",\"email\":\"email\"}":""}#
 
Das Escaping der Anführungszeichen ist ja noch ok. Aber die Struktur an sich verstehe ich nicht. Wie sieht denn ein Dump des Objekts in PHP aus? Was genau stellt das dar?
 
Zurück
Oben