0

当我尝试通过 ajax jquery 成功发送数据时,我得到了整个页面 html 。其他功能在这里工作是我的代码。

                                    <form id ="" action ="" method ="POST">
                                    <?php
                                        $counter = 0 ;
                                        foreach ($all_users as $user) {
                                    ?>
                                    <tr class="">
                                        <td><?php echo $user->user_name; ?></td>
                                        <td><?php echo $user->level ;?></td>
                                        <td>asd</td>
                                        <td><a class="edit" href="javascript:;">Edit</a></td>
                                        <td><a class="delete" onclick ="delete_user($(this),<?php echo $user->id;?>)">Delete</a></td>
    </tr>
    <?php
    $counter ++;
    }
        ?>
</form>

javascript

    function delete_user(row_id,user_id)
    {
        if (confirm('Do you really want to delete')) {

            row_id.closest('tr').remove();

            $.ajax({
                type: "POST",
                url: "delete_user/",
                data: { "user_id":user_id },

                success: function(msg) {


                        //alert("Name = " + msg);
                }
            });
        } 
        else {
        // Do nothing!
        }
    }

在 CI

function delete_user()
{
    $user_id = $this->input->post('user_id');
    $this->load->model("m_user");
    $this->m_user->delete_user($user_id);
    echo $result;
    echo $user_id;
}

我可以看到它发送了帖子并且也发送了数据,但是我没有得到回复,我得到了整个 html 页面代码。

4

3 回答 3

1

我在项目中遇到的同样情况,问题的简单解决方案是,当您delete_user()在此函数codeigniter调用其他函数之后发送请求时,您需要在执行后停止执行,delete_user()例如使用die()call

function delete_user()
{
$user_id = $this->input->post('user_id');
$this->load->model("m_user");
$this->m_user->delete_user($user_id);
echo $result;
echo $user_id;
die();
}

同样在您的JS代码中,您没有提供删除功能的控制器名称

  function delete_user(row_id,user_id)
{
    if (confirm('Do you really want to delete')) {

        row_id.closest('tr').remove();

        $.ajax({
            type: "POST",
            url: "<?php echo base_url();?>/controller_name_required/delete_user/",
            data: { "user_id":user_id },

            success: function(msg) {


                    //alert("Name = " + msg);
            }
        });
    } 
    else {
    // Do nothing!
    }
}

希望这对你有帮助

于 2013-04-08T09:06:02.697 回答
0

采用

 $this->m_user->delete($user_id);

反而

   $this->m_user->delete_user($user_id);
于 2013-04-08T09:01:12.010 回答
0

我发现一件事是

我的网址是这个

http://localhost/xxx/CI/user/all/

在这里,用户是一个控制器,一切都是功能。

当我尝试将数据发送到函数名称 delete_user 可能是 CI 考虑它这样

http://localhost/xxx/CI/user/all/delete_user/

我像这样对网址进行硬编码

http://localhost/xxx/CI/user/delete_user/

它告诉我,现在谁能告诉我如何解决那个 url 问题?抱歉,我是 CI 新手。

于 2013-04-08T09:12:01.273 回答