删除codeigniter中的行时查询错误

时间:2014-09-08 14:28:39

标签: php jquery ajax codeigniter delete-row

我正在做一些删除活动记录,但我不知道我做错了什么..请检查我的工作并尝试纠正它..我正在使用ajax删除用户记录..谢谢

控制器:

//user_acc is my table name , manageuser is the view, Mod_admin is the name of my model
public function manageuser(){
    $this->load->view('template/adminhead');
    $data['user_acc'] = $this->Mod_admin->user_acc();
    $this->load->view('manageuser', $data);
}


public function delete() {
    $id = $this->input->post('id');
    $this->Mod_admin->deleteuser('user_acc', $id);
}

型号:

public function deleteuser($table, $id)
    {
       $this->db->delete($table,array('id'=>$id));  
    }

查看:(manageuser.php)

<html>
<head>
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/manageuser.css">
</head>
<title>Manage User</title>

<script>
$(document).ready(function(){
    $(".delete").click(function(){
        var parent = $(this).parent().parent();
        var id = $(this).parent().parent().find('.id').html();


        var x =new Object();
        x = {
            'id':id,
            };

        var url ="<?php echo base_url()?>/admin/delete";
        $.ajax({
            url:url,
            type:'post',
            data:x,
            success:function(e){
                alert(e);
            }
        });

        parent.remove();
        console.log(x);
     });

});

</script>


<body>
    <div >
  <table class="table" >
        <tr>
            <th>ID</th>
            <th>FIRST NAME</th> 
            <th>LAST NAME</th> 
            <th>USERNAME</th> 
            <th>PASSWORD</th> 
            <th>E-MAIL</th> 
            <th>CONTACT</th>
        <th colspan="2" > CONTROLS </th>
        </tr>
    <?php


                foreach($user_acc as $row){
                $id = $row->id;
                echo 

                      '<tr> 

                          <td>'.$row->id.'</td>
                          <td>'.$row->firstname.'</td>
                          <td>'.$row->lastname.'</td>
                          <td>'.$row->username.'</td>
                          <td>'.$row->password.'</td>
                          <td>'.$row->email.'</td>
                          <td>'.$row->contact.'</td>
                          <td>'.'<a href="#" id="button" >'.'Edit</a>'.'</td>
                           <td>'.'<a href="#" id="button" class="delete" data-id="$id" >'.'Delete</a>'.'</td> 
                      </tr>';



                }
            ?>
</table>

</div>


</body>
</html>

删除后,警告框中没有消息

3 个答案:

答案 0 :(得分:0)

您的ajax回调中似乎没有返回,在控制器中的 delete 函数中。

我会在您的控制器删除功能中执行此操作:

public function delete() {
    $id = $this->input->post('id');
    $result = $this->Mod_admin->deleteuser('user_acc', $id);

    echo $result ? 'success' : 'failed';
}

这在您的模型中 deleteuser 函数:

public function deleteuser($table, $id)
{
    $this->db->delete($table,array('id'=>$id));

    $result = $this->db->affected_rows() > 0 ? true : false;

    return $result;
}

答案 1 :(得分:0)

试试这个,
我总是使用site_url进行重定向和链接,并在我想加载一些css或js时使用base_url。还要添加dataType:'json'

**var url ="<?php echo site_url('admin/delete');  ?>";**
        $.ajax({
            url:url,
            type:'post',
            data:x,
            **dataType: 'json',**
            success:function(e){
                alert(e);
            }
        });

让我知道

答案 2 :(得分:0)

你已经把它变得很复杂请考虑一下

    <?php  foreach($user_acc as $row){  $id = $row->id; ?>


                                  <tr id="tr_<?php echo $id; ?>" >
                                  <td><?php echo $id; ?></td>
                                  <td><?php echo $row->firstname; ?></td>
                                  <!-- other td's -->
                                  <td><a href="javascript:delete('<?php echo $id; ?>')">Delete</a></td> 
                                  </tr>



                       <?php } ?>
    <script>
    function delete(id){
     $.ajax({
                url:url,
                type:'post',
                data:{'id',id},
                success:function(e){

                  if(e=="success"){
                     $('#tr_'+id).hide();
                  }
                  else{
                     alert(e);
                  }
                }
            });

    }
    </script>
public function delete() {
    $id = $this->input->post('id');
    $result = $this->Mod_admin->deleteuser('user_acc', $id);

    echo $result ? 'success' : 'failed';
}

in model 

public function deleteuser($table, $id)
{
    $this->db->delete($table,array('id'=>$id));

    $result = $this->db->affected_rows() > 0 ? true : false;

    return $result;
}

我没有检查您的查询我还建议您使用CSRF保护