Problem mit Json (mehrere ausgaben)

maxxe

Grünschnabel
Guten Abend,

ich sitze jetzt schon seit einiger Zeit (4Std.) an meinem Problem.

Und zwar möchte ich per jQuery und


Kommentare abrufen.

Im Firebug bekomm ich alles als "OK" angezeigt nur auf der Webseite erscheint nichts, kann mir da mal jemand weiterhelfen?!

hier mal der Code


index.html

PHP:
<script type="text/javascript">
	$(document).ready(function(){

var u_id='<?php echo $idd;?>';

$.getJSON("comment.php?c_id="+u_id,function(data)
{
$.each(data.posts, function(i,data)
{
var div_data="<li id='"+data.id+"'><b>"+data.comment+"</b></li> ";

$(div_data).appendTo("ol#update");
		   
});
});

});
</script>

<ol id="update"></ol>


comment.php


PHP:
define("DB_COMMENT", DB_SITO3478."comment");



if(isset($_GET['c_id'])){
	
$result = @mysql_query("SELECT * FROM ".DB_COMMENT." WHERE c_id ='".$_GET['c_id']."' ");							
	
						
echo '{"posts": [ ';

while($row = mysql_fetch_assoc($result)){
				
							


echo'{
"id":"'.$row['id'].'",
"user":"'.$row['c_user'].'",
"comment":"'.$row['comment'].'",
"time":"'.$row['c_time'].'"
}, ';

}

echo ']
}';
							
								
}



MFG Maxxe
 
Zeig doch mal ein Beispiel JSON anstatt dein PHP Code. Wenn du kannst, dann verwende http://php.net/manual/en/function.json-encode.php um das als Fehlerquelle auszuschließen.
Ich sehe zumindest schon mal ein Komma nach dem letzten Element, dass da nicht hin gehört.


Hat mit dem Problem nicht zu tun, aber du solltest folgendes ändern:
Javascript:
//Vorher
$(div_data).appendTo("ol#update"); 

//Nacher
$("#update").append(div_data);

Denn es ist unnötig den ganzen HTML String in die jQuery Funktion zu stecken und Parsen zu lassen.
 
Zuletzt bearbeitet:
Erstmal danke für den Tip mit dem HTML String, hab jetzt das ganze mit "json_encode($abc)" probiert passiert leider nichts!

Im Firebug bekomme ich keine Fehler kommt also alles an

Code:
{"posts": [ {
"id":"8",
"user":"1",
"comment":"abs test",
"time":"1276463700",
"avatar":"uploads/avatar.png"
} {
"id":"12",
"user":"1",
"comment":"hi",
"time":"1277027839",
"avatar":"uploads/avatar.png"
} ]
}

nur an der Ausgabe stimmt irgendwas nicht.

Hab auch alles geprüft ob die id´s nicht doppelt sind usw.

Weiß einer woran das liegen kann?!
 
Zuletzt bearbeitet:
Das ist kein valides JSON. getJSON schlägt dann stillschweigend fehlt (fails silently). Kommt die gesamte Ausgabe aus json_encode?
 
Dann solltest du das mal ändern. Hier ein Beispiel, du musst meine beiden Beispiel-Posts ersetzen durch eine while Schleife:

PHP:
<?php
$posts = array();


$posts[] = array(
	'id' => 100,
	'user' => 17,
	'comment' => 'foo',
	'time' => 159924,
	'avatar' => 'img.jpg'
);

$posts[] = array(
	'id' => 432,
	'user' => 91,
	'comment' => 'bar',
	'time' => 529962695,
	'avatar' => 'beer.jpg'
);


echo json_encode(array('posts' => $posts));
?>
 

Neue Beiträge

Zurück