删除后加载Ajax实时页面(ajax,codeigniter)

时间:2014-01-07 04:36:05

标签: javascript php jquery ajax codeigniter

你好我这里有问题..

我将使用Ajax和codeigniter删除记录。 但是当数据库中的记录被删除时,视图不会改变.. 我认为它需要一个实时页面加载,但不知道如何..

这是我的观点..

    <a class="btn btn-primary"  href="#" onclick="deleteFav('<?php echo $favbook[$x]['Bibli'];      ?>')">Delete
      </a>

    <script>
function deleteFav(bibli)
    {
        $.ajax({
            type    :"POST",
            url     : "<?php echo site_url(); ?>favorite_book/deleteFav",
            async   : false,
            data    : {
                        Bibli:bibli
                      },
            success : function(data){

            }
        });
    }
</script>

这是我的模特

    function addfav($Bibli, $createTime, $username)
    {

        $data_fav = array(
            'Bibli' => $Bibli,
            'FavoriteDate' => $createTime,
            'Username' => $username,
            'CreatedTime' => $createTime,
            'AuditActivity' => 'I'
        );
        echo $this->db->insert('msfavoriteasset',$data_fav);

    }

我的控制器

public function deleteFav()
{
    $data = $this->input->post();

    print_r($this->input->post('Bibli'));
    $createTime = date("Y-m-d H:i:s",strtotime('+6 hours'));        
    $success = $this->favoritebook_model->delete($data["Bibli"], $this->session->userdata('username'));

}

3 个答案:

答案 0 :(得分:1)

试试这个: -

<a class="btn btn-primary"  href="#"  data-bibli="<?php echo $favbook[$x]['Bibli'];      ?>">Delete</a>

<script>
    function deleteFav(bibli, this)
        {
            $.ajax({
                type    :"POST",
                url     : "<?php echo site_url(); ?>favorite_book/deleteFav",
                async   : false,
                data    : {
                            Bibli:bibli
                          },
                success : function(data){
                    $(this).remove();
                }
            });
        }

    $(document).ready(function(){
       $(".btn-primary").click(function(){
           var bibli = $(this).data("bibli");
           deleteFav(bibli, this);
       });
    });
</script>

不要忘记在onclick="deleteFav('<?php echo $favbook[$x]['Bibli']; ?>', this)

上添加此参数

答案 1 :(得分:0)

根据评论中的讨论尝试此代码。

success : function(data){
                var delay=2000//2 seconds
                setTimeout(function(){

                   //your code to be executed after 2 seconds
                    location.reload();
                },delay)

            }

答案 2 :(得分:0)

我假设您需要的是当用户点击删除时,必须从他的收藏列表中删除某个人,并且您需要更新从列表中删除的人的视图。

这可以通过以下方式完成,您可以删除此人并在删除和更新列表后将新列表作为Ajax回复发送。

success : function(data){ $('#favlist_div').html(data); }

这会将原始列表替换为更新列表。

或者您可以直接从列表中删除此人

我想你是用图像和删除按钮列出最喜欢的人 如果echo $ favbook [$ x] [&#39; Bibli&#39;]是唯一ID

<div id="div_<?php echo $favbook[$x]['Bibli']; ?>">
<img .....>
<a class="btn btn-primary" href="#" onclick="deleteFav('<?php echo $favbook[$x]['Bibli'];?>')"> Delete </a>
</div>

然后在成功中你可以简单地将div删除为

success : function(data){ $('#div_'+bibli).hide(); }