如何解码从php到jquery ajax的数组响应?

时间:2012-12-03 02:00:34

标签: php javascript jquery ajax

我有PHP功能:

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)< / p>

3 个答案:

答案 0 :(得分: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 to 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']);
}

答案 1 :(得分:0)

您可以使用以下命令将数组作为json从php回显:

echo json_encode($arr1);

在JS中使用$ .getJSON:

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

答案 2 :(得分:0)

您可以使用JSON对数组进行编码。 http://php.net/manual/en/function.json-encode.php