だから、ここに何か楽しいことがあります!ajax 呼び出し内で関数を実行し、AJAX 成功関数内の要素に他の関数からのデータを入力しようとしています。それは理にかなっていますか?おそらくそうではないので、ここに私のコードがあります。
これは、1 つのデータに対して別の関数に依存する最終結果関数です。
function runQuery(){
var url = 'http://www.nexthometown.com/index.php?option=com_singleprop&view=raw&format=raw';
$.ajax({
url: url,
dataType: 'json',
success: function(data){
$.each(data, function (key, value){
var agentuid = value[0];
var mlsnum = value[1];
var address = value[5] + ' ' + value[6] + ' ' + value[7];
var city = value[9];
var state = value[10];
var zip = value[11];
$('#ohs_table').append('<tr><td>' + mlsnum + '</td><td>' + address + ' ' + city + ' ' + zip + '</td><td class="date"><div>' + ohsDate(mlsnum) + '</div></td><td><div class="media_button">QRCode</div><div class="pdf_button media_button" form="oh_usda" value="' + mlsnum + '">USDA<br/>PDF</div><div class="pdf_button media_button" form="oh_usda_null" value="' + mlsnum + '">NO USDA<br/>PDF</div></td></tr>');
});
},
error: function(jqXHR, error, errorThrown) {
alert(jqXHR.responseText);
}
});
};
これは、他の AJAX 呼び出しの成功関数内で呼び出される関数です。
function ohsDate(mlsno){
var dateurl = 'http://www.nexthometown.com/index.php?option=com_singleprop&view=raw&format=raw&mlsnum='+mlsno;
$.ajax({
url: dateurl,
dataType: 'json',
success: function(data){
$.each(data, function (key, value){
var date = value[0];
var start = value[3];
var end = value[4];
$(this).parent('.date').append( date + ',' + start + ' - ' + end );
});
},
error: function() {
alert('OOPS!');
}
});
};
さて、問題は、最終結果のAJAX呼び出しが終了しundefined
たときに、結果として取得し続けることです。したがって、依存関数が呼び出されるたびにアラートが表示されるわけではないので、成功したとしか想定できませんが、何かが未定義であると想定しています。'OOPS!
$(this)
手がかりはありますか?