动态加载Ajax数据

时间:2017-09-11 01:53:51

标签: javascript php jquery mysql ajax

我有一堆jQuery函数从MySQL数据库中获取JSON数据并将其显示在我的应用程序中的某些页面上。

我有大约15个这些函数看起来与下面类似,我想整理它们并将它们转换为一个主要函数,它根据传递给函数的变量返回数据。 IE getdata(订阅)将显示订阅。

我的问题是我不确定如何从ajax查询中将列名传递给函数,并从函数中删除value.column-name。

来自应用程序的示例函数

function GetSubscriptions(){    
    $.ajax({
    url: 'jsondata.php', 
    type: 'POST',       
    dataType:'json',
    timeout:9000,                       
    success: function (response)                
    {           
      var trHTML = '';    
      $.each(response, function (key,value) {
         trHTML += 
            '<tr><td>' + value+ 
            '</td><td>' + value.subscription_name + 
            '</td><td>' + value.subscription_cycle +    
            '</td><td>' + value.subscription_cost +     
            '</td><td>' + value.subscription_retail +   
            '</td><td>' + value.subscription_profit +   
            '</td><td>' + value.subscription_margin + 
            '</td><td>' + value.subscription_markup +                               
            '</td></tr>';                   
      });
        $('#subscription-results').html(trHTML);
    },          
  });   
}

非常感谢任何帮助,因为我对jQuery很新。

1 个答案:

答案 0 :(得分:1)

您可以参考以下代码:

function GetSubscriptions(){    
  $.ajax({
      url: 'jsondata.php', 
      type: 'POST',       
      dataType:'json',
      timeout:9000,                       
      success: function (response)                
      {               
          $('#subscription-results').html(parseColumns(response));
      },          
  });
}   
function parseColumns(columns) {
    var html = '';

    if (Object.prototype.toString.apply(columns) === '[object Array]') {
        $.each(columns, function(key, value) {
            html += parseColumn(value);
        })
    } else {
        html += parseColumn(columns);
    }

    function parseColumn(column) {
        var trHTML = '<tr><td>' + column + '</td>';

        for (var key in column) {
           trHTML += '<td>' + column[key] + '</td>'
        }
        trHTML += '</tr>';

        return trHTML;
    }

    return html;
}