我试图通过创建一个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
答案 0 :(得分:1)
似乎Reservation::find_by_table_id($id);
返回一个数组。
尝试$res[0]->get_id()
$res = new Reservation();
是无用的代码。