如何使用codeigniter和jquery删除记录?

如何使用codeigniter和jquery删除记录?,jquery,ajax,codeigniter,Jquery,Ajax,Codeigniter,我有一个工作的codeigniter控制器和视图,它成功地删除了记录。我希望使用ajax-jquery来实现这一点,以避免重新加载页面,并且如果用户确定要删除记录,我将需要提示用户 任何代码片段都将不胜感激,因为我不知道从哪里开始: 以下是来自控制器的代码: public function deleteUser() { $this->load->model('backOfficeUsersModel'); $deleteWhat = array

我有一个工作的codeigniter控制器和视图,它成功地删除了记录。我希望使用ajax-jquery来实现这一点,以避免重新加载页面,并且如果用户确定要删除记录,我将需要提示用户

任何代码片段都将不胜感激,因为我不知道从哪里开始:

以下是来自控制器的代码:

public function deleteUser()
    {
        $this->load->model('backOfficeUsersModel');
        $deleteWhat = array(
            'dpage' => $this->input->post('dpage'),
            'rid'   => $this->input->post('rid')
        );
        $this->backOfficeUsersModel->delete($deleteWhat['rid']);
        redirect($deleteWhat['dpage']);
    } // end of function deleteUser
以下是我现在的观点:(为了简单起见,只提供了php代码)

foreach($user as$key=>$user){
echo form_open(“backOfficeUsers/deleteUser”);
echo form_hidden('dpage','backOfficeUsers/displayAllUsers');
echo form_hidden('rid',$user['userid']);
回声“;
回声“;
$data=数组(
“名称”=>“行选择”,
'id'=>$user['userid'],
'value'=>$user['userid'],
“类”=>“选择行”
);
回显表格复选框($data);
//回声“;
回声“;
回显“$user['userid']”;
回显“$user['firstname']”。$user['lastname']”;
回显“$user['username']”;
回显“$user['email']”;
回声“;
echo锚(“backOfficeUsers/displayEditUserForm/$user[userid]/”、“”、“class=ext_disabled”);
回声“;
回声“;
$confirm=“class='splashy-remove'style='border:none;宽度:16px;高度:16px;”;
回送表格提交(“提交”、“确认”);
回声“;
回声形式_close();
}
任何帮助(代码片段或链接到某个示例)都将不胜感激


尊敬的Zoran,请放松一下echo的陈述。如果您发现自己过度使用它们,则可能因为您应该使用嵌入式PHP编写HTML,而不是使用嵌入式HTML编写PHP。此外,在发布问题时,请删除那些只会让回答者感到困惑的多余内容。你的代码中有很多废话没有触及问题的核心

从零开始,我将使用以下HTML脚手架:
我在这里使用了Datamapper的语法来删除记录,请适应活动记录。代码没有经过测试,它是在SO编辑器中编写的-但这是我将如何处理的。

请对
echo
语句放松。如果您发现自己过度使用它们,则可能因为您应该使用嵌入式PHP编写HTML,而不是使用嵌入式HTML编写PHP。此外,在发布问题时,请删除那些只会让回答者感到困惑的多余内容。你的代码中有很多废话没有触及问题的核心

从零开始,我将使用以下HTML脚手架:
我在这里使用了Datamapper的语法来删除记录,请适应活动记录。代码没有经过测试,它是在SO编辑器中编写的,但这就是我的工作方式。

您提供了有关echo语句的极好建议。谢谢我现在将尝试实现您的解决方案。在控制器中的删除功能上遇到问题。这里的代码现在看起来是这样的:公共函数deleteUser($userid){$ids=$userid;$this->load->model('backOfficeUsersModel');$this->backOfficeUsersModel->delete($ids);返回json_encode(数组(“success”=>true));}//函数deleteUseradding$this->displayAllUsers()结束;最后还是没用。页面保留在空白控制器函数上:也就是说,url看起来像:/backOfficeUsers/deleteUser/50页面在AJAX请求中不应该更改。您确定正在调用
e.preventDefault()?使用Chrome开发工具检查来自服务器的响应(网络选项卡)。您提供了关于echo语句的极好建议。谢谢我现在将尝试实现您的解决方案。在控制器中的删除功能上遇到问题。这里的代码现在看起来是这样的:公共函数deleteUser($userid){$ids=$userid;$this->load->model('backOfficeUsersModel');$this->backOfficeUsersModel->delete($ids);返回json_encode(数组(“success”=>true));}//函数deleteUseradding$this->displayAllUsers()结束;最后还是没用。页面保留在空白控制器函数上:也就是说,url看起来像:/backOfficeUsers/deleteUser/50页面在AJAX请求中不应该更改。您确定正在调用
e.preventDefault()?使用Chrome开发工具检查服务器的响应(网络选项卡)。Zoran,你需要开始+1并接受更经常帮助你的答案:)Zoran,你需要开始+1并接受更经常帮助你的答案:)
foreach ($users as $key => $user) {
                            echo form_open('backOfficeUsers/deleteUser');
                            echo form_hidden('dpage', 'backOfficeUsers/displayAllUsers');
                            echo form_hidden('rid', $user['userid']);
                            echo "<tr>";
                            echo "<td>";

                            $data = array(
                                'name' => 'row_sel',
                                'id' => $user['userid'],
                                'value' => $user['userid'],
                                'class' => 'select_row'
                            );

                            echo form_checkbox($data);

                            //echo "<input type='checkbox' class='select_row' name='row_sel'>"; 
                            echo "</td>";
                            echo "<td>" . $user['userid'] . "</td>";
                            echo "<td>" . $user['firstname'] . " " . $user['lastname'] . "</td>  ";
                            echo "<td>" . $user['username'] . "</td>  ";
                            echo "<td><a href=mailto:" . $user['email'] . ">" . $user['email'] . "</td>  ";
                            echo "<td style='text-align: center;'>";
                            echo anchor("backOfficeUsers/displayEditUserForm/$user[userid]/", "<i class=splashy-pencil></i>", "class=ext_disabled");     
                            echo "</td>";
                            echo"<td style='text-align: center;'>";
                            $confirm = "class='splashy-remove' style='border:none; width:16px; height:16px;'";

                            echo form_submit('submit', '', $confirm);
                            echo"</td></tr>";

                            echo form_close();
                        }
<table>
    <thead>
        <tr>
            <th>Username</th>
            <th>Actions</th>
        </tr>
    </thead>
<tbody>
    <? foreach($users as $uK => $uV):?>
        <tr>
            <td><?= $uV['username']?></td>
            <td><a class='deleteUser' href='backOfficeUsers/deleteUser/<?= $uV["id"]?>'>Delete</a></td>
        </tr>        
    <? endforeach;?>
</tbody>
<script type='text/javascript'>
    $(document).ready(function(){
        $(".deleteUser").click(function(e){
            $this  = $(this);
            e.preventDefault();
            var url = $(this).attr("href");
            $.get(url, function(r){
                if(r.success){
                    $this.closest("tr").remove();
                }
            })
        });
    });
</script>
class Backofficeuser extends CI_Controller{
    function __construct(){
        ...
    }

    function deleteUser($id){
        $u = new User($id);
        if($u->delete()) return json_encode(array("success" => true));            
    }

}