javascript - 如何访问ajax调用返回的对象中的数据

标签 javascript php jquery ajax

我发出 AJAX 请求:

   function getdbsite(wantedid) {
      alert(wantedid);
      $.ajax({
         url: 'public/xml/xml_getdbsite.php',
         dataType: 'text',
         data: {"wantedid": wantedid},
         type: 'POST',
         success: function (data) {
            resultObj = eval(data);
            site=resultObj[0];
           // alert(site->language);  }These cause errors
           // alert(site->name);      }
            reply=resultObj[1];
         }
      });
   }

服务器端 PHP:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
require_once '../../includes/initialize.php';
header("Content-Type: application/json");
$id=$_POST['wantedid'];
$site = Website::find_by_id($id);
if($site){
   $arr[0] = $site;
   $arr[1] = "OK";
}else {
   $arr[0] = "$id";
   $arr[1] = "Failed";
}
$arr = json_encode($arr);
echo("$arr");

AJAX 响应:[{"id":"19","idlanguage":"1","name":"QI"},"OK"]

但我无法访问数据库行。

我搜索了一下,发现: Parse PHP array of objects with jQuery Ajax

但不明白答案,他们的例子只有 1 个字段。请帮忙。

最佳答案

我强烈建议不要使用 eval() 函数。

相反,明确设置您将从服务器接收 JSON:

dataType: 'JSON',

示例:

PHP:

if($site){
   $arr['data'] = $site;
   $arr['message'] = "OK";
}else {
   $arr['data'] = $id;
   $arr['message'] = "Failed";
}

echo json_encode($arr);
exit;

JS:

$.ajax({
    url: 'public/xml/xml_getdbsite.php',
    dataType: 'JSON',
    data: {"wantedid": wantedid},
    type: 'POST',
    success: function(response) {

        // use dot notation not -> arrow notation
        var data = response.data;
        var message = response.message;
        alert(message);

        alert(data.id);
        alert(data.idlanguage);

    }
});

关于javascript - 如何访问ajax调用返回的对象中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331352/

相关文章:

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 使用 JQuery/PHP 的跨域 Ajax 请求

jquery - 如何使用复选框和 .next() 在表单中显示/隐藏/切换 div

javascript - 对象、数组和 $.each()

javascript - 如何在使用 .text() 时向文本添加空格

javascript - Array.map 是否重用 React 组件的实例?

javascript - 更改 Javascript 数组内的对象值

javascript - 在表单上使用 jquery show() 和 hide()

javascript - 使用 JQuery 将数千行动态加载到表中

PHP 统计每天创建一行的站点 View