ajax替换为数据库的新输出

时间:2012-07-19 05:36:46

标签: jquery ajax

您好我在jquery中使用ajax post和json来读取php的数据库输出。现在,一旦我获得数据onClick,如果我再次按下按钮,数据将再次填充在它下面。我想用新内容替换数据。我对jquery& amp;阿贾克斯。  我正在使用的代码是:

    $.ajax({
type:'POST',
dataType: 'json',
url:'database.php',
data:{search: $("#search").val()},
success:function(rows){
    for (var i = 0, len = rows.length; i < len; i++) {
        $('#output').html($('#output').html() + '<tr><td>'+ rows[i].Cat_Name +'</td><td>'+ rows[i].Drug_Caty +'</td><td>'+ rows[i].G_Name +'</td><td>'+ rows[i].B_Name +'</td><td>'+ rows[i].D_Indications +'</td></tr>'        
        );
});

3 个答案:

答案 0 :(得分:1)

您可以使用empty()方法,然后使用append()新数据,请尝试以下操作:

success:function(rows){
    $('#output').empty(); // Removes all child nodes of the set of matched elements from the DOM.
    for (var i = 0, len = rows.length; i < len; i++) {
        $('#output').append('<tr><td>'+ rows[i].Cat_Name +'</td><td>'+ rows[i].Drug_Caty +'</td><td>'+ rows[i].G_Name +'</td><td>'+ rows[i].B_Name +'</td><td>'+ rows[i].D_Indications +'</td></tr>'        
    };
}

答案 1 :(得分:0)

你在做什么

output.html = output.html + x;

doing it 3 times will produce

(((output.html + x) + y) + z)

可能是你想要做的是

output.html = x;

如果您只想替换加载了Ajax的内容并保持其他行不变:

success:function(rows){
    if($('.ajaxloaded').length)$('.ajaxloaded').remove();
    for (var i = 0, len = rows.length; i < len; i++) {
        $('#output').html('<tr class="ajaxloaded"><td>'+ rows[i].Cat_Name +'</td><td>'+ rows[i].Drug_Caty +'</td><td>'+ rows[i].G_Name +'</td><td>'+ rows[i].B_Name +'</td><td>'+ rows[i].D_Indications +'</td></tr>');
        }
    }

如果您的#output是表

,请检查@SangeethMenon是否建议使用

答案 2 :(得分:0)

假设output<tbody>

<table>的ID

然后试试这个

$("#output").html("");

for (var i = 0, len = rows.length; i < len; i++) {
        $('#output').html('<tr class="ajaxloaded"><td>'+ rows[i].Cat_Name +'</td><td>'+ rows[i].Drug_Caty +'</td><td>'+ rows[i].G_Name +'</td><td>'+ rows[i].B_Name +'</td><td>'+ rows[i].D_Indications +'</td></tr>');
        }
    }

否则output <table>本身的ID

然后试试这个

$("#output tbody").html("");


for (var i = 0, len = rows.length; i < len; i++) {
        $('#output').html('<tr class="ajaxloaded"><td>'+ rows[i].Cat_Name +'</td><td>'+ rows[i].Drug_Caty +'</td><td>'+ rows[i].G_Name +'</td><td>'+ rows[i].B_Name +'</td><td>'+ rows[i].D_Indications +'</td></tr>');
        }
    }

P.S。要保留表格的标题,您应将它们放在<thead>标记