2012-12-03 110 views
0

我有PHP函數:如何解碼從PHP到jquery ajax的數組響應?

public function doit() 
{ 
    $arr1= array(); 
     $arr1['index1'] = 'value1'; 
      $arr1['index2'] = 'value2'; 
} 

我把它從我的jQuery函數:

$.ajax 
({  
    url: "/controller/doit", 
    success: function() 
    { 
     alert('done!'); 
    } 
}); 

一切我想要的是 - 我的jQuery函數,其中包含此Ajax調用將返回我的陣列,這是相同的一個,PHP函數返回其(唯一的區別是當然的語言:JS代替PHP)

+0

公共功能度特() { $ ARR1 =陣列(); $ arr1 ['index1'] ='value1'; $ arr1 ['index2'] ='value2'; } – shapeshifter

回答

2

你需要從你的doit函數中返回一些東西。

public function doit() 
{ 
    $arr1= array(); 
    $arr1['index1'] = 'value1'; 
    $arr1['index2'] = 'value2'; 

    echo json_encode($arr1); 
} 


$.ajax 
({  
    url: "/controller/doit", 
    success: function(data) 
    { 
    console.log(data); 
    } 
}); 

編輯:

了jQuery PHP:當JavaScript的運行時,它會將數據陣列發送到使用URL的服務器。服務器接收數組,將其編碼爲json並將其發送回成功回調函數,該函數將數據記錄到控制檯。

// YOUR JAVASCRIPT FILE 
// your data to send. 
var data = {'index1': 'value1', 'index2': 'value2'}; 

$.ajax({ 
    type: 'POST', 
    url: '/controller/doit', 
    data: data, 
    success: function(data) { console.log(data) }, 
    dataType: 'json' 
}); 


//YOUR PHP FILE 
public function doit() 
{ 
    // you should be setting your content type header to application/json if sending json 
    header('Content-type: application/json'); 
    echo json_encode($_POST['data']); 
} 
+0

嘿,但我想從這個JSON,正常的數組創建JavaScript數組,並返回它的函數 - 如何做到這一點? – pawel

+0

啊,在這種情況下,使用ajax調用。生病添加編輯我的答案。 – shapeshifter

0

可以使用回聲數組作爲從PHP JSON:

echo json_encode($arr1); 

而且使用$ .getJSON在您的JS:

$.getJSON('/controller/doit', function(data) { 
    console.log(data); 
}); 
+0

嘿,但我想從這個JSON,正常的數組創建JavaScript數組並返回它的函數 - 如何做到這一點? – pawel

+0

getJSON會爲你解析json。你有沒有嘗試console.log(數據)。這將是一個js數組 –