0

だから、ここに何か楽しいことがあります!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)

手がかりはありますか?

4

1 に答える 1

0

私はこのアプローチを放棄し、mySQL クエリを からWHEREに変更しましたJOIN。別のスクリプトから何かを取り込むためにバンドエイドの修正を試みていました。うまくいきませんでした。

于 2013-01-25T17:59:38.910 に答える