如何使用jquery附加动态数据?

时间:2016-10-26 07:24:11

标签: jquery

我有一个动态创建的表单,它将数据发布到数据库并返回带有ajax的响应,并将此数据附加到表行。我可以看到firebug响应正在运行,但它没有将数据附加到我的表中。我有这个工作,但我目前正在尝试将返回的数据附加到同一个表行。有谁能告诉我出了什么问题?

这是我的jquery。

$(document).on('submit', '.myForm', '.results', function(e) {    
    var new_data = $("#" + $(this).data("table")).find('tbody > tr')    
    e.preventDefault();        
    $.ajax({
        url: 'add_tag_test.php',
        type: 'POST',
        dataType: 'html',
        data: $(this).serialize(),
        success: function(response) {
            $(new_data).hide().fadeIn("slow").append('<td>' + response + '</td>');        
            $('#message').show().fadeIn();
            $('#message').fadeOut("slow");        
        }        
    });

    return false;
});

以下是动态表单上的提交按钮:

<span class="pull-right"><button type="submit" data-table="myTable'.$i.'" class="fabutton"></button></span>

这是我得到的回复,而不是追加自己:

     <td><small><a href="profile.php?user_name=Julian" 
 <span class="" id=".6.">Julian,&nbsp;</small></a></td>

1 个答案:

答案 0 :(得分:1)

我假设那么这里的目标是将列添加到现有表中?我试图尝试(希望!)简化过程:

为你的提交按钮构建一个函数,然后(因为我假设你正在尝试实现),从包含按钮的表单中发送序列化数据:

<button
    type='submit'
    onclick='return submitClicked(this, "myTable<?php echo $i;?>");'
    class='fabutton'>Click Me</button>

    ...

<script>

    function submitClicked(button, table_id){

        button = $(button);
        var form = button.parents('form:first');
        var rows = $('#'+table_id).find('tbody > tr');

        $.ajax({
            url: 'add_tag_test.php',
            type: 'POST',
            dataType: 'html',
            data: form.serialize(),
            success: function(response) {
                rows.hide().append('<td>' + response + '</td>').fadeIn("slow");
                $('#message').fadeIn();
                $('#message').fadeOut("slow");        
            }
        });

        return false;
    }

</script>

因此,我们正在创建一个可重复使用的函数,将按钮和表单ID作为参数发送给它,并使用该按钮检索其中包含的表单,以将序列化的表单数据传递给add_tag_test.php文件(我假设您没有像以前的代码那样尝试序列化按钮本身。)

然后我们发布数据,得到结果,并像以前一样追加它。我希望这是有道理的,我尽可能地简化它!