2013-01-21 83 views
-1

不知道爲什麼這不再陣列之間{}沒有逗號,{}不再數組JSON,以及如何提醒JSON數據jQuery中

foreach ($query->result_array() as $row) { 
    header("Content-type: application/json"); 
    echo (json_encode($row,JSON_PRETTY_PRINT)); 
} 

而如何在jQuery的提醒JSON數據? 在此之前,我用js中的循環來循環它,但由於某種原因,我現在必須在服務器端循環。

編輯

//because i want to replace $row['url'] to get_thumb();  
foreach($query->result_array() as $row){ 
     $row['url'] = $this->vz_image->get_thumb($row['url'],'n'); 
     header("Content-type: application/json"); 
    echo (json_encode($row,JSON_PRETTY_PRINT)); 
    } 

然後我得到了這個結果,但我不知道如何在jQuery來提醒這個JSON數據。任何幫助?

{ 
"id": "44", 
"url": "assets\/img\/uploaded_photos\/thumbs\/1358786330_n.jpg", 
"created_time": "1358786330", 
"photo_id": "170", 
"tag_id": "44", 
"name": "Lan Yao Yeng", 
"num_photo": "3" 
}{ 
"id": "44", 
"url": "assets\/img\/uploaded_photos\/thumbs\/1358711532_n.jpg", 
"created_time": "1358711532", 
"photo_id": "169", 
"tag_id": "44", 
"name": "Lan Yao Yeng", 
"num_photo": "3" 
} 
+0

你認爲'''來自哪裏? – SLaks

回答

2

如果要將整個數組傳遞給客戶端,只需編碼數組本身,而不是每個元素。

function map($row){ 
    if (isset($row['url'])) 
     $row['url'] = $this->vz_image->get_thumb($row['url'],'n'); 
    return $row; 
} 

header("Content-type: application/json"); 
echo json_encode(array_map("map", $query->result_array()),JSON_PRETTY_PRINT); 

如果你使用這個類中,您可能需要更改array_map("map", $query->result_array())array_map(array($this, "map"), $query->result_array())

+0

你能再次看到我的問題嗎? – vzhen

+0

我已經更新了我的答案:) –

+0

This works。你救了我大聲笑,我學習新事物array_map()謝謝 – vzhen

3

它不是一個數組,因爲你沒有給它一個數組。

您正在一個接一個地響應多個對象;不是一個對象數組。

+0

你能再次看到我的問題嗎? – vzhen

+0

您不能連接多個JSON文字;結果將不是有效的JSON。你需要一次「json_encode()」整個數組。 – SLaks

+0

但如果我json_encode整個數組。我如何取代$ row ['url']以使用php get_thumb()函數? – vzhen