将PHP数据传递给Ajax响应?

时间:2014-10-29 19:37:54

标签: javascript php jquery ajax json

我正在使用我在网上发现的this脚本来检测访问者的网络浏览器详情。

当我通过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。

$.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);
  }      
});

4 个答案:

答案 0 :(得分:3)

您可以将数据回显为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 :(得分:2)

您必须将数组编码为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 :(得分:0)

不要让php脚本返回一个数组,而是让它回显如下信息:

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

然后将其转换为数组:

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

然后您可以像这样访问每个变量:

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

答案 3 :(得分:0)

在.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;
}