我有一个API
个php函数,可以从数据库中执行SQL
查询,并对JSON
中的值进行编码。
例如
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() .'}}';
}
}
在浏览器中调用网址http://localhost/getapicall/apikey的价值是
{"Total":"80"}
在使用JavaScript的前端HTML页面中,API URL称为
<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 :(得分:1)
$.get()
是一个异步函数,这意味着它不会立即返回您的数据 - 它必须首先往返于您的服务器。
而是传递一个函数,以便在从端点返回数据时执行。
var myJSON = $.get('../v1/getapicall/default', function(result) {
document.getElementById("txt1label").innerHTML = result.Total;
}));
答案 1 :(得分:0)
您需要削减json数据并等待get请求完成。异步。
<script type="text/javascript">
$.get( '../v1/getapicall/default', function( data ) {
var obj = JSON.parse(data);
document.getElementById("txt1label").innerHTML = obj.Total;
});
</script>