You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery+CodeIgniter编辑用户功能异常:无法跳转至更新视图求助

问题分析与解决方案

你当前的核心问题是对AJAX请求的逻辑理解偏差:$.post是异步数据请求,它的作用是从服务器获取数据而非触发页面跳转。控制器加载视图后返回的完整HTML代码,现在只是被你用alert弹出,并没有被渲染到页面上,所以自然看不到更新视图。

以下是两种针对性解决思路:


思路一:直接跳转页面(最简单高效)

如果你的需求是跳转到独立的更新页面,完全没必要用AJAX,直接通过普通链接传递参数即可:

  1. 修改视图中的a标签:
<td align="center">
  <a class="editProfile" href="<?= base_url() ?>index.php/Users/editProfileByID/<?= $row['id'] ?>">
    <img src="<?= base_url() ?>images/operations.JPG" width="50" height="50">
  </a>
</td>

直接把用户ID通过URL路径参数传递,不再依赖rel属性。

  1. 修改控制器方法:
function editProfileByID($userID)
{
    $whereArray = array('id' => $userID);
    $data['adminData'] = $this->user_model->get_user_by($whereArray);
    $data['main_content'] = 'usersViews/editProfile';
    $data['page_title'] = 'Edit Profile';
    $this->load->view('includes/template', $data);
}

通过URL参数接收用户ID,点击链接后直接跳转到带用户数据的更新页面,逻辑简单不易出错。


思路二:AJAX异步加载表单(适合弹窗编辑)

如果需要在当前页面弹窗显示编辑表单,不跳转页面,需处理AJAX返回的HTML内容:

  1. 添加页面容器:
    在页面中新增一个用于存放编辑表单的容器(比如模态框或空div):
<div id="editContainer" style="display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 20px; background: white; border: 1px solid #ccc;"></div>
  1. 修改jQuery代码:
$(document).ready(function() {
    $('.editProfile').click(function(e) {
        // 阻止a标签默认跳转行为
        e.preventDefault();
        var id = $(this).attr('rel');
        $.post("<?= base_url() ?>index.php/Users/editProfileByID", {
            id: id
        }, function(data) {
            // 将返回的视图HTML插入容器并显示
            $('#editContainer').html(data).show();
        });
    });
});

注意:去掉参数末尾多余的逗号(id: id, → id: id),避免语法错误。

  1. 调整控制器视图逻辑:
    确保usersViews/editProfile视图仅包含表单内容(无需重复公共头部尾部),或者修改模板includes/template,根据场景判断是否加载公共布局。

额外注意点

控制器中的return "success";无效,因为$this->load->view()已经输出了HTML内容,return的内容不会被返回给前端。

内容的提问来源于stack exchange,提问作者Ahmed Hagrasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 09:43:28