2013-12-26 3 views
0

Я пытаюсь получить данные из вызова ajax, создав объект json и проанализировав объект в своем javascript.Вызов функции-члена xxxx на не-объекте

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); 
    } 
    }); 
} 

РНР файл 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); 

Когда я var_dump в $ Рез приемлю в PHP после того, как только вызов сценария с идентификатором = 20 (объект находится в базе данных!), то я вижу, что скрипт действительно работает и выводит его со всеми полями правильно:

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

'$ res' - это массив, а не объект' Reservation'! – Sumurai8

ответ

1

Это кажется что Reservation::find_by_table_id($id); возвращает массив.

$res[0]->get_id() Попробуйте

И $res = new Reservation(); бесполезно код.

Смежные вопросы