将PHP数据传递给Ajax响应?

将PHP数据传递给Ajax响应?

问题描述:

我正在使用this脚本我在互联网上发现了一个访问者Web浏览器的详细信息。将PHP数据传递给Ajax响应?

当我通过ajax调用发送请求时,该脚本就会运行。

正如你可以在PHP脚本的底部看到,有一个数组,

return array(
     'userAgent' => $u_agent, 
     'name'  => $bname, 
     'version' => $version, 
     'platform' => $platform, 
     'pattern' => $pattern 
    ); 

$ua=getBrowser(); 
$yourbrowser= 
"Your browser: " . $ua['name'] . " 
" . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent']; 

print_r($yourbrowser); 

我怎么能在这样通过每这些变量的回阿贾克斯我可以做到这一点的时尚。

$.ajax({          
url: 'analyze.php',  
data: "active=active", 
success: function(data) 
    { 
    var userAgent = data[1]; 
    var name = data[2]; 
    var version = data[3]; 
    $("#div1").html(userAgent); 
    $("#div2").html(userAgent); 
    $("#div3").html(userAgent); 
    }  
}); 
+0

你明白了什么,当你'的console.log(数据)'? – 2014-10-29 19:41:31

+0

你可以将它编码为JSON数据并返回。 – Crackertastic 2014-10-29 19:44:36

你必须阵列作为JSON编码物体

echo json_encode($array); 

然后AJAX调用将是这样的:

$.ajax({          
url: 'analyze.php',  
data: "active=active", 
dataType: "json", 
success: function(data) 
{ 
    var userAgent = data.userAgent; 
    var name = data.name; 
    var version= data.version; 
    .... 
} 
+2

你想'echo json_encode()',而不是'return'。 – 2014-10-29 19:51:20

+0

@RocketHazmat你是对的,我误解了那个函数调用。 – SLin 2014-10-29 19:53:38

+0

@SLin你的变量$ array,来自哪里?我是否应该将我发布在$ array中的解释顶部的数组存储在数组中? '$阵列= 阵列( '的userAgent'=> $ u_agent' 等? – ProEvilz 2014-10-29 21:14:27

可以呼应数据作为JSON:

echo json_encode($myArray); 

然后加入dataType:'json'和在javascript通过名称访问属性:

dataType: 'json', 
success: function(data) { 
    var userAgent = data.userAgent; 
    var name = data.name; 
    var version = data.version; 
} 
+1

确保将“dataType:'json''添加到AJAX调用中以使其工作。 – 2014-10-29 19:50:38

,而不必PHP脚本返回一个数组,有它呼应这样的信息:

echo "$u_agent,$bname,$version,$platform,$pattern"; 

然后将其转换成一个数组:

var dataArray = data.split(','); 

然后你就可以访问每一个变量,像这样:

var userAgent = dataArray[1]; 
var name = dataArray[2]; 
var version = dataArray[3]; 

在你的PHP文件

header('Content-Type: application/json'); // Set the header type to json at the top of the file. 

echo json_encode($array); // Echo out the array as a json-string. 

在你的Ajax成功功能

function (data) { 
    var foo = data.bar; 
}