そのため、ユーザーがフォームを送信したときに呼び出される関数があり、jquery ロードを実行して、入力に基づいて対応する曲を見つけて表示します。これはすべて正常に機能しますが、これらの値を配列に保存して、それらを使って何かをしたいと思います (今はデバッグのためだけに警告します)。私の推測では、配列をチェックする前に ajax が完了するのを待っていないため、コードは「未定義」を送信していると思われます。SO、どうすればこれを修正できますか?以下のコード:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
//final step is to initialize an array outside the function, fill it in,
//then window.out on each part of the array
function callMe() {
var hold = new Array();
for (var i = 0; i < 5; i++) {
var b = $('#song'+i).val();
var c = $('#artist'+i).val();
var d = b + " " + c;
$('#'+i).html("Loading...");
$('#'+i).load('getInfo.php', {term: d}, function(data){
//I have no clue why 5 keeps popping up
hold[i] = data;
// alert("The number"+i+":"+hold[i]);
});
}
for (var i = 0; i<5; i++) {
alert(hold[i]);
}
}
$(function() {
$('form').submit(function() {
callMe();
return false;
});
});
</script>