使用来自另一个函数的Ajax调用的/ looping响应

时间:2016-04-21 12:43:14

标签: javascript jquery ajax

我正在从另一个函数调用Ajax函数并希望得到响应,然后解析Json以便将其分配给新的div

调用如下:thedata = GetChequesByBatchID(batchId);这是回复:

enter image description here

然后,我试图循环响应,但这就是问题所在。我不确定如何获得响应并循环遍历thedata。此数据应分配给htmlFromJson,以便将其作为divs的{​​{1}}组插入。TR。有什么想法吗?

我的功能:

<script type="text/javascript">
    $(document).ready(function (params) {
        var batchId;
        var thedata;
        var htmlFromJson = "";
        $('.showDetails').click(function () {
            // Show Details DIV
            $(this).closest('tr').find('.details').toggle('fast');
             batchId = $(this).data('batchid');
             thedata = GetChequesByBatchID(batchId);

             var json = jQuery.parseJSON(thedata);

             $.each(json, function () {

                     htmlFromJson = htmlFromJson + ('<div class="ListTaskName">' + this.ChequeID + '</div>' +
                         '<div class="ListTaskDescription">' + this.ChequeNumber + '</div>' +
                     '<div class="ListTaskDescription">' + this.ChequeAccountNumber + '</div>' +
                     '<div class="ListTaskDescription">' + this.ChequeAmount + '</div>');

            });
        }).toggle(
            function () {
                // Trigger text/html to toggle to when hiding.
                $(this).html('Hide Details').stop();
                $(this).closest("tr").after("<tr class='456456'><td></td><td colspan = '999'>" + '<div class="zzss">' + htmlFromJson + '</div></td></tr>');              
            },
            function () {
                // Trigger text/html to toggle to when showing.
                $(this).html('Show Details').stop();
                //$(this).find('.zoom').remove();
                $('tr.456456').remove();
            }
        );
    });
</script>

我的Ajax功能:

<script type="text/javascript">
    function GetChequesByBatchID(BatchID) {
        var xss;
        var qstring = '?' + jQuery.param({ 'BatchID': BatchID });
      return $.ajax({
            url: '<%=ResolveUrl("~/DesktopModules/PsaMain/API/ModuleTask/GetChequesByBatchID")%>' + qstring,
            type: "GET",
            cache: false,
            contentType: "application/json; charset=utf-8",
            success: function (result) {
                jQuery.parseJSON(result); //the response
            },
            error: function (response) {
                alert("1 " + response.responseText);
            },
            failure: function (response) {
                alert("2 " + response.responseText);
            }
        });
        return xss;
    }
</script>

1 个答案:

答案 0 :(得分:0)

$.ajax是异步操作(如果您不包含async:false选项,建议不要这样做),这样您的GetChequesByBatchID函数会立即返回$.ajax个对象或{ {1}}。正确使用undefined是从$.ajax的{​​{1}}或success部分调用DOM更改方法。