CodeIgniter ajax只发布一次

时间:2015-03-26 03:32:49

标签: php ajax codeigniter

您好我正在尝试使用ajax post删除数据库中的一行,但问题是该行每次加载时只被删除一次。当我按下删除按钮时,行从HTML DOM中分离,但数据库只删除一条记录。我想在每次按下删除按钮时删除数据库中的地址。我怎样才能做到这一点?

我的观点

<tbody id="tbody"><?php
    $count = 1;
    foreach($rows as $row):?>
        <tr>
            <td><?=$count?></td>
            <td><a href="basic_table.html#">
                <?=$row->FirstName." ".$row->LastName?></a>
            </td>                        
            <td class="hidden-phone"><?=$row->Email?></td>
            <td><?=$row->Password?></td>
            <td><span class="label label-warning label-mini">
                <?=date("m/d/Y", strtotime($row->Created))?></span>
            </td>
            <td>
                <button class="btn btn-success btn-xs">
                    <i class="fa fa-check"></i></button>
                    <button class="btn btn-primary btn-xs">
                    <i class="fa fa-pencil"></i>
                </button>
                <button id="delete" data-id="<?=$row->id?>" 
                    data-url="<?=base_url()?>" class="btn btn-danger 
                    btn-xs"><i class="fa fa-trash-o "></i>
                </button>
            </td>
        </tr><?php
        $count++;
    endforeach?>
</tbody>

脚本

$(document).ready(function()
{
$("#tbody").on('click','#delete', function()
{
    var id = $("#delete").data("id");
    var url = $("#delete").data("url");

    $.post(url + "users/delete", { id : id, cache: false } , function()
    {

    },"json");

    $(this).closest('tr').detach();
});
});

1 个答案:

答案 0 :(得分:1)

请提供codeigniter控制器脚本

您必须更改为锚标记并添加preventDefault()以防止重新加载页面

$(document).ready(function(){
    $("#tbody").on('click','#delete', function(e){
        //You must add e.preventDefault() to avoid reloading page
        e.preventDefault();
        var id = $("#delete").data("id");
        var url = $("#delete").data("url");

        $.post(url + "users/delete", { id : id, cache: false } , function(){
        },"json");

        $(this).closest('tr').detach();
    });
});