我做了一些关于'asynchronise ajax json calls'的阅读,我也在YouTube上看过一些教程。之后,我想出了下面的代码,以便在名为fieldList
的全局变量中返回getJSON调用的响应。但我的var fieldList
中的对象保持空白。我认为这是因为在填写var fieldList
之后完成异步呼叫。但我现在迷失在如何解决这个问题上。那么任何人都可以用我的代码来帮助我?如何使Ajax GET请求的变量检索JSON数据?
我的js文件:
var fieldList = $("div.slctField");
$("#slctTable").change(function()
{
$.getJSON("dropdown_code/get_fields.php?table=" + $(this).val(), success = function(data)
{
var options = "";
for(var i = 0; i < data.length; i++)
{
options += "<option value='" + data[i] + "'>" + data[i] + "</option>";
}
$("#slctField").html("");
$("#slctField").append(options);
$("#slctField").change();
});
});
console.log(fieldList);
我检查什么是我的选择列表试图从列表中获得选项并且工作。我得到了以下的输出:
当我检查什么是选项我得到了这样的价值观:
但是当我tryed把所有的值了与此代码下拉的:
var values = $("select#slctAttribute option").map(function() {return $(this).val();}).get();
console.log(values);
我这回在我的控制台:
所以它仍然是空的,但我不知道为什么?
把'fieldList中= $( “div.slctField”); 'getJSON'函数的末尾可能会有所帮助,如果我猜测的是你想要的。 – Chintan
我在'$(“#slctField”)。change();'之后加了'fieldList = $(“div.slctField”);'但是我的全局'var $ fieldList'仍然没有任何对象。 –
可能的重复[如何返回来自异步调用的响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – JJJ