使用从ajax响应创建的变量填充表

时间:2012-03-07 22:28:17

标签: javascript jquery ajax json

我有一个填充了数据的表,然后我需要使用它来运行第二个查询。我正在使用jquery数据表,这些是你看到的功能,允许我从表中获取所有内容。所以例如我像这样从第四列中获取一个整数然后使用该数字来运行json响应的查询:

var cells = [];
var rows = oTable.fnGetNodes();
for( var i=0;i<rows.length;i++)
        {
            var grabsku = $j(rows[i]).find('td:eq(3)').text();
            grabsku = grabsku.substring(0, 6) + "-0" + grabsku.substring(7, grabsku.length - 4);
            s7url = 'http://jsonquery.com/' + grabsku  + '?req=exists,json';        

      $j.ajax({
        url: s7url,
        dataType: 'jsonp'
        });
       }

然后使用该ajax请求,json返回1或0,然后我可以根据返回的内容形成正确的信息。

function s7jsonResponse(response)
        {
        var s7img = sku;
        s7img = '<img src="http://imageserver.com/is/image/' + s7img.substring(0, 6) + "-0" + s7img.substring(7, s7img.length - 4) + '">';
         x = response["catalogRecord.exists"];  
             z = x == "0" ? "NO IMG" : s7img;
             console.log(z);
        }

控制台现在向我显示我想要的z变量,图像路径或NO IMG。我的问题是将其从控制台中取出并实际返回到表中。我想要发生的是每个响应都用z变量替换表中的td。我试着将它放在jsonResponse中,但它无法正常工作。我怎么能遍历表格,在这种情况下(td:eq(2))并用变量z替换每个单元格我从这个查询中回来了?

1 个答案:

答案 0 :(得分:0)

需要创建一个函数来执行ajax,您可以将行索引和包含数据查询字符串的url作为参数传递。由于你知道了单元索引,一旦从ajax返回数据,你就可以调用fnUpdate来使用ajax成功的新数据和行索引

var cells = [];
var rows = oTable.fnGetNodes();
for (var i = 0; i < rows.length; i++) {
    var grabsku = $j(rows[i]).find('td:eq(3)').text();
    grabsku = grabsku.substring(0, 6) + "-0" + grabsku.substring(7, grabsku.length - 4);
    s7url = 'http://jsonquery.com/' + grabsku + '?req=exists,json';
    var rowIndex = i;
    doAjax(s7url, rowIndex)
}



function doAjax(url, rowIndex) {
    $j.ajax({
        url: s7url,
        dataType: 'jsonp',
        success: function(repsonse) {

            var s7img = sku;
            s7img = '<img src="http://imageserver.com/is/image/' + s7img.substring(0, 6) + "-0" + s7img.substring(7, s7img.length - 4) + '">';
            x = response["catalogRecord.exists"];
            z = x == "0" ? "NO IMG" : s7img;
            console.log(z);
        /* do fnUpdate here using new data and rowIndex and you know the cell index already*/
        }



    });
}