2012-10-19 51 views
-2

在我的PHP代碼返回許多陣列我想返回兩個數組從JSON編碼

在JavaScript
$array_result[]+= $temp_score_by_weight; 
$array_name[] .= $alter->name; 
} 
$return["result"] = $array_result; 
$return["name"] = $array_name; 

echo json_encode($return); 

AJAX功能

function requestData() { 
    $.ajax({ 
     url: 'result_calculation.php', 
     success: function(data) { 
      // call it again after one second 
      alert(data); 
     }, 
     cache: false 
    }); 
} 

警報(數據)的結果在下面的格式如下:

{"result":[1265,765],"name":["rmit","svu"]} 

我想利用這些信息,並把它們在兩個單獨的JavaScript陣列(結果CON的陣列含有雜質的兩個值,和名稱的同一陣列)

回答

1

指定JSON格式爲您Ajax調用

$.ajax({ 
    url: 'result_calculation.php', 
    success: function(data) { 
    // call it again after one second 
    alert(data["result"]);//first array 
    alert(data["name"]);//second array 
    }, 
    cache: false, 
    dataType: "json" 
}); 
+0

它的工作原理,問題是我沒有把dataType – Kamal

1
var result = data.result; 
var name = data.name; 
+0

我嘗試這樣的代碼,但它不工作。它警告我undefined – Kamal

0

只是將它們分配給數組:

var result = data.result; 
var name = data.name 
0

JSON要求最外面的實體是單個對象或數組,這樣你就需要從服務器返回一個對象,如果你想發送多個數組(並且數組不是最好的選擇)。

然而,轉換爲兩列很簡單,只要

var result = data.result; 
var name = data.name; 
+0

我試過這段代碼,但它不起作用。它提醒我undefined – Kamal

+0

你能提供你實際嘗試過的代碼嗎?由於此代碼中沒有「提醒」,因此您必須在警報中添加一些自己的 – Dancrumb

+1

數據打印作爲字符串,這意味着他無法執行data.something => json不處理,必須將dataType添加到ajax調用 –