2017-02-14 2 views
0

У меня есть API php-функции, которые выполняют запрос SQL из базы данных и кодируют значения в JSON.API-вызовы в javascript

например

function getApiCall(){ 
    $sql = 'SELECT * AS "Total" from tablename"'; 
    try { 
     $db = getConnection(); 
     $stmt = $db->prepare($sql); 
     $stmt->execute(); 
     $user = $stmt->fetch(PDO::FETCH_OBJ); 
     $db = null; 
     echo json_encode($user); 
    } catch(PDOException $e) { 
     echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    } 
} 

Значение по вызова URL http://localhost/getapicall/apikey в браузере

{"Total":"80"} 

В моем переднем конце HTML-страницы с помощью JavaScript, то URL API называется

<script type="text/javascript"> 
var myJSON = $.get('../v1/getapicall/default'); 
document.getElementById("txt1label").innerHTML = myJSON; 
</script> 

Но отображается значение [object object], как показать значение json данные, т. е. 80 в этом случае?

Если я пытаюсь положить

document.getElementById("txt1label").innerHTML = myJSON.Total; 

значение получает отображается как неопределенные.

+0

Я имею в виду все другие ответы, вероятно, хорошо, но вы осмеливаются другой маршрут и использовать [ '$ .getJSON (...)'] (https://api.jquery.com/jQuery .getJSON /)? ;) – SpencerD

+0

Esteann Afonso проверьте ответы ниже, и если они будут обработаны, отметьте этот ответ как принятый. Спасибо –

+0

не забудьте пометить вопросы как jQuery, если вы ищете решение jQuery. –

ответ

1

$.get() - это асинхронная функция, которая означает, что она не вернет ваши данные сразу - сначала вам нужно совершить кругосветное путешествие на ваш сервер.

Вместо этого вы передаете ему функцию, которая будет выполняться, когда данные будут возвращены с вашей конечной точки.

var myJSON = $.get('../v1/getapicall/default', function(result) { 
    document.getElementById("txt1label").innerHTML = result.Total; 
})); 
0

Вам необходимо разобрать свои данные json, а также дождаться завершения запроса на получение. Получить асинхронность.

<script type="text/javascript"> 
$.get('../v1/getapicall/default', function(data) { 
    var obj = JSON.parse(data);  
    document.getElementById("txt1label").innerHTML = obj.Total; 
}); 
</script> 
+2

Это неверно. '$ .get' возвращает обещание, а не фактические данные. – bejado

+1

спасибо сделал изменить его – Sameer

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