【问题标题】:Ajax call returns an array of empty objectsAjax 调用返回一个空对象数组
【发布时间】:2019-04-10 16:39:30
【问题描述】:

我正在使用 php 的 OOP,正在从数据库中获取数据。 数据提取得很好,但是当我进行 ajax 调用时,它返回一个空对象数组。如何让对象返回数据

在 json_encoding 之前获取数据库结果

Array ( [0] => CategoryModel Object ( [id:CategoryModel:private] => 1 [code:CategoryModel:private] => cat001 [name:CategoryModel:private] => laptop [date:CategoryModel:private] => 2018-11-05 15:33:21 [owner:CategoryModel:private] => OwnerModel Object ( [companyName:OwnerModel:private] => [id:PersonModel:private] => 1 [code:PersonModel:private] => [firstname:PersonModel:private] => [lastname:PersonModel:private] => [username:PersonModel:private] => [email:PersonModel:private] => [password:PersonModel:private] => [date:PersonModel:private] => [mobile:PersonModel:private] => [fullname:PersonModel:private] => Galiwango Fahad [account_type:PersonModel:private] => ) [status:CategoryModel:private] => 0 ) [1] => CategoryModel Object ( [id:CategoryModel:private] => 2 [code:CategoryModel:private] => cat002 [name:CategoryModel:private] => pen [date:CategoryModel:private] => 2018-11-05 16:05:29 [owner:CategoryModel:private] => OwnerModel Object ( [companyName:OwnerModel:private] => [id:PersonModel:private] => 1 [code:PersonModel:private] => [firstname:PersonModel:private] => [lastname:PersonModel:private] => [username:PersonModel:private] => [email:PersonModel:private] => [password:PersonModel:private] => [date:PersonModel:private] => [mobile:PersonModel:private] => [fullname:PersonModel:private] => Galiwango Fahad [account_type:PersonModel:private] => ) [status:CategoryModel:private] => 0 ) )

php 代码 检索和编码数据

<?php

require_once("../services/CategoryService.php");
$categoryService = new CategoryService();
$categoryArray =  $categoryService->selectAllCategoryDetails();
if(count($categoryArray)>0){
// echo print_r($categoryArray);
  echo json_encode($categoryArray);


}else{
  echo 0;
}

?>

javascript

$.ajax({
    type: "POST",
    url: ".././com.flex_audit/controllers/fetchAllCategoriesController.php",
    data: "",

    success: function (responseData) {
        if(responseData!=0){
            var categoryObjArr = JSON.parse(responseData);
            console.log(categoryObjArr);
            console.log(categoryObjArr[0]);
            console.log(categoryObjArr[0]["id"]);
        }else{
            $("#alertMessage").text(" categories not found ");
        }
       // console.log(responseData);    
    }
    ,
    error:function(error){
      alert("an error occured "+error);
    }
});

  });

控制台结果

(2) [{…}, {…}]
 {}
 undefined

为什么响应返回的是空对象

【问题讨论】:

标签: php jquery ajax oop


【解决方案1】:

因为对象的所有属性都是私有的 *它在将类属性设为公共而不是私有后起作用*

来自

private $id,$code,$name,$date,$owner,$status;

public $id,$code,$name,$date,$owner,$status;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2012-12-05
    • 2020-03-23
    • 2015-07-22
    • 2021-11-15
    相关资源
    最近更新 更多