在非对象上调用成员函数xxxx

时间:2013-12-26 08:51:57

标签: php ajax json

我试图通过创建一个json对象并在我的javascript中解析对象来从ajax调用中获取数据。

javascript函数:

function confirm_unavailable_table(form) {
  event.preventDefault();
  var id = form.table_id.value;
  console.log(id);
  $.ajax({
    type: "GET",
    cache: false,
    url: "/kviberg/views/ajax_check_availability.php", 
    data: {id : id},
    dataType: "json",
    success: function(data) {
      //var obj = JSON.parse(data) || $.parseJSON(data);
      console.log(data);
    },
    error: function(data) {
      console.log(data);
    }
  });
}

php文件ajax_check_availability.php

require_once("../classes/reservation.php");

$id = intval($_GET['id']);
$res = Reservation::find_by_table_id($id);
$arr = array("id" => $id, "res_id" => 0, "sub_id" => 0); 
if($res) {
  //var_dump($res);  <-- Checked that outputs an object when just calling the php script 
  $res_id = intval($res->get_id());
  $arr["res_id"] = $res_id;
} 

echo json_encode($arr);

当我在调用id = 20的脚本(对象在数据库中!)后,在var_dump中的$ res对象,然后我可以看到脚本实际工作并输出所有正确的字段: / p>

array(7) { [0]=> object(Reservation)#2 (14) { ... }

但是当我通过ajax运行它并希望像JSON对象一样在控制台上输出它时我得到了这个错误:

![enter image description here][1]

日志文件的输出显示:

[26-Dec-2013 09:42:49 Europe/Berlin] PHP Fatal error:  Call to a member function 
get_id() on a non-object in
/Applications/MAMP/htdocs/kviberg/views/ajax_check_availability.php
on line 13

1 个答案:

答案 0 :(得分:1)

似乎Reservation::find_by_table_id($id);返回一个数组。

尝试$res[0]->get_id()

$res = new Reservation();是无用的代码。