将PHP数据传递给Ajax响应

Pass PHP data to Ajax response?

本文关键字:Ajax 响应 PHP 数据      更新时间:2023-09-26

我正在使用这个脚本来检测访问者的web浏览器详细信息。

当我通过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);
  }      
});

您可以将数据回显为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;
}

您必须将数组编码为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;
    ....
}

与其让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;
}