我是javascript的新手并且遇到以下问题。 我想从api.php加载一些json并使用返回的值成功填充我的GUI。
$( '#data_button' ).click(function() {
$.post( 'api.php', function( data ) { json = data; });
$('#data1').empty().append( json[0].name + ' | ' + json[1].name );
});
所以我想点击一个按钮,然后通过发布一些数据来获取并将其保存到变量数据中。 因为它应该是一个对象(json对象?)我以为我可以像上面那样使用它... 但这不起作用。控制台说:找不到变量json。
任何提示?
答案 0 :(得分:2)
您在帖子回调函数之外添加了附加内容。试试这个:
$( '#data_button' ).click(function() {
$.post( 'api.php', function( data ) {
json = data;
$('#data1').empty().append( json[0].name + ' | ' + json[1].name );
});
});
答案 1 :(得分:2)
jquery post默认以异步方式工作,这意味着行:
$('#data1').empty().append( json[0].name + ' | ' + json[1].name );
在post请求返回数据之前发生。
这应该怎么做:
$( '#data_button' ).click(function() {
$.post( 'api.php', function( data ) {
$('#data1').empty().append( data[0].name + ' | ' + data[1].name );
});
});