2013-08-15 4 views
-2
<?php 
    include ('config.php'); 
    $stringData = $_POST['dataString']; 
    $sql=mysql_query("SELECT * FROM comments WHERE post_id_fk='$stringData'"); 

    while($row=mysql_fetch_array($sql)) { 
     $user=$row['user_id']; 
     $time=$row['time']; 
     $comment=$row['comment_content']; 
     $respond=array(
      'user'=>$user, 
      'time'=>$time, 
      'comment'=>$comment 
    ); 
     echo json_encode ($respond); 
    } 
    ?> 

У меня есть этот скрипт, и я не могу его запустить, что здесь не работает и почему ответ не JSON?Почему я не получил ответ JSON?

В Firebug показывает, что реакция:

{"user":"890","time":"2013-08-15 20:34:02","comment":"What's up?"} 
{"user":"878","time":"2013-08-15 23:35:45","comment":"opa"} 
+0

Возможный дубликат [JSON ошибка синтаксического анализа ответа] (http://stackoverflow.com/questions/18259276/json-answer-parsing-error) – JJJ

+0

Вы должны разобрать строку JSON, иначе это просто строка. – undefined

+0

@undefined, если я предупреждаю ответ прямо сейчас, он должен показать [object Object]? В настоящий момент он ничего не предупреждает. –

ответ

1

вы можете объединить данные JSON в единый объект/массив перед кодированием его:

$output = array(); 

while($row=mysql_fetch_array($sql)) { 
     $user=$row['user_id']; 
     $time=$row['time']; 
     $comment=$row['comment_content']; 
     $respond=array(
      'user'=>$user, 
      'time'=>$time, 
      'comment'=>$comment 
    ); 
     $output[] = json_encode ($respond); 
} 

echo json_encode($output); 

также добавление заголовков может помочь, если обнаружен неправильный тип контента:

header('Content-Type: application/json'); 
echo json_encode($output); 

просто убедитесь, что вы установили их, прежде чем echoi ng anything ...