JSON 文字列を返す jquery AJAX 呼び出しを行う関数を作成しました。単独では問題なく動作します。文字列をコンソールに出力すると、JSON 文字列の出力を確認できます ( console.log
)。
function getJSONCustomers()
{
var response = $.ajax({
type: "GET",
url: "getCustomers.php",
dataType: "json",
async: false,
cache: false
}).responseText;
return response;
};
ただし、その関数呼び出しの出力を含むように変数を設定すると、次のようになります。
var mydata = getJSONCustomers();
、それから私のTwitter-Bootstrap TypeAhead関数 (フォームのオートコンプリート) 内で使用してみてください:
data = mydata;
console.log(data);
コンソールに「未定義」エラーが表示されます。
以下は、このコードのスニペットです。
$(document).ready(function() {
var mydata = getJSONCustomers();
$('#Customer').typeahead({
source: function (query, process) {
customers = [];
map = {};
data = mydata;
console.log(data);
// multiple .typeahead functions follow......
});
ここで興味深いのは、data 変数を AJAX 関数から返されるハードコーディングされた JSON 文字列に設定すると、すべて正常に動作することです。
data = [{"CustNameShort": "CUS1", "CustNameLong": "Customer One"}]
先行入力関数内で JSON 文字列を使用するにはどうすればよいですか?