簡體   English   中英

在每次按鈕單擊ajax調用后如何刷新表

[英]How to refresh table after everytime button click in ajax call

我想通過單擊搜索按鈕在表中顯示數據。 我面臨的問題是,如果在“ Fromdate-Todate”之間沒有數據,錯誤將正確地出現,但是現在在此之后,我輸入了正確的fromdate和todate,則表中未顯示任何內容。 我檢查了Chrome控制台數據是否來自后端,但未顯示在表格中

 $('#paymentdetails').click(function() { var getData = basePath + 'Admin/GetPaymentsForDate/?FromDate=' + $(".datepickerInputFROM").val() + '&ToDate=' + $(".datepickerInputTO").val() if (($(".datepickerInputFROM").val() == "") && ($(".datepickerInputTO").val() == "")) { alertify.alert('Please select dates to proceed.') return false; //$('#financetbl').html(''); } else if (($(".datepickerInputFROM").val() == "") || ($(".datepickerInputTO").val() == "")) { alertify.alert('Please select dates to proceed.') return false; //$('#financetbl').html(''); } $.ajax({ url: getData, async: true, success: function(response) { // alert(response[0]); $('#financetbl').html(''); // if (response.resultCourse != '' && response[0]!= 'null') { if (response.length > 0) { var tr; for (var i = 0; i < response.length; i++) { tr = '<tr>' tr += "<td>" + response[i].applicationNumber + "</td>"; tr += "<td>" + response[i].applicantName + "</td>" tr += '</tr>' $('#financetbl tbody').append(tr); } inittable(); console.log(response) } else { console.log(response) alertify.alert("Error : No Payments Details Found"); //flush the table $('#financetbl').html('No Payments Details Found'); } } }); }); 

我相信執行時:

$('#financetbl').html('');

然后,tbody消失了,您會失去以下選擇器:

$('#financetbl tbody').append(tr);

我認為第一行應該是:

$('#financetbl tbody').empty();

更改

    $('#financetbl').html('No Payments Details Found');

    $('#financetbl').html('<tr><td colspan="2">No Payments Details Found</td></tr>');

您有過多的if語句,並且在返回的結果為空時需要正確管理表。 因此,我們將其放在一個空表行中。

不知道什么是inittable(); 這樣做,您可能必須解決此問題。

$('#paymentdetails').on('click', function() {
  if (($(".datepickerInputFROM").val() == "") || ($(".datepickerInputTO").val() == "")) {
    alertify.alert('Please select dates to proceed.')
    return false;
  }
  var getData = basePath + 'Admin/GetPaymentsForDate/?FromDate=' + $(".datepickerInputFROM").val() + '&ToDate=' + $(".datepickerInputTO").val();
  $.ajax({
    url: getData,
    async: true,
    success: function(response) {
      $('#financetbl').find('tbody').html('');
      if (response.length > 0) {
        var tr;
        for (var i = 0; i < response.length; i++) {
          tr = '<tr>'
          tr += "<td>" + response[i].applicationNumber + "</td>";
          tr += "<td>" + response[i].applicantName + "</td>"
          tr += '</tr>'
          $('#financetbl tbody').append(tr);
        }
        inittable();
        console.log(response);
      } else {
        console.log(response);
        alertify.alert("Error : No Payments Details Found");
        //flush the table
        $('#financetbl').find('tbody').html('<tr><td>No Payments Details Found</td></tr>');
      }
    }
  });
});

嘗試類似JSON.parse()的方法

var json = '{"applicationName":"XYZ","applicationNumber":1}',
obj = JSON.parse(json);

alert(obj.applicationName);

要么

var json = '{"applicationName":"XYZ","applicationNumber":1}',
obj = JSON && JSON.parse(json) || $.parseJSON(json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM