如何在Ajax函数返回0记录时显示消息

时间:2014-03-19 13:37:17

标签: jquery ajax json

DataTableJSON来电中返回0时,尝试显示消息“无数据显示”(使用Ajax时)。但无法弄清楚如何。

尝试

$("#noData").show();  

使用 if 语句但不起作用。

<div id="noData" class="grid_4 alpha" style="display: none;">No data to display</div>

以下是绘制表格的代码。

function FillTable() {
    var title = plotData.title + ' / ' + YMLabel(plotData.startYM) + " - " + YMLabel(plotData.endYM);

    if (table != null) {
        table.fnDestroy(true);
    }

    $("#tabContainer").empty()
        .html('<h1 class="pageTitle">' + title + '</h1><img src="../styles/loading.gif">');

    $.ajax({
        url: "ajax_incidents_table.asp",
        type: "POST",
        data: {
            startYM: plotData.startYM,
            endYM: plotData.endYM
        },
        timeout: 10000,
        success: function (ajaxData) {
            var htmlstr = '<h1 class="pageTitle">' + title + '</h1><table id="table"></table>';
            $('#tabContainer').html(htmlstr);
            var tabSettings = {
                sDom: 'rt',
                bPaginate: false,
                sScrollX: "100%",
                bScrollCollapse: true,
                bFilter: false,
                aoColumns: ajaxData.aoColumns,
                aaData: ajaxData.aaData
            }
            table = $('#table').dataTable(tabSettings);
            SetTooltips()
            ShowDescription();
        },
        error: function (x, t, m) {
            alert('error: ' + m);
            $('#tabContainter').html("<h3>An error has occured. (" + t + " / " + m + ")</h3>");
        }
    });

2 个答案:

答案 0 :(得分:0)

仅当请求以200(成功)返回时,才会返回

0。否则,error函数将执行,并会提示用户输入错误。

所以你可以尝试一下:

success: function (data) {
  if(data == 0) { // if the result is 0
    $('#noData').show(); // show the div..
  }
}

这样,您可以在成功函数中检查结果的值。

其次,您可以尝试在浏览器的“检查器”的“网络”选项卡中检查网络请求。按 F12 然后转到“网络”选项卡,检查与请求相关的所有信息,然后根据条件对其进行编码。

答案 1 :(得分:0)

客户端代码肯定需要@Afzaal Ahmed Zeeshan在上面回答的内容。

if(ajaxData.aaData == null) 
{ 
   $('#noData').show();
}

除此之外,实际问题出现在Ajax部分。当数据库查询返回零记录时,需要传递以下内容。

json=json&",""aaData"":[null]}" 

客户端代码期待json格式的数据。但是我试图使用Response.Write显示NO DATA的消息,该消息将文本(字符串)发送到main-asp文件并且不是Jason格式化的。