我无法弄清楚使用 jQuery 和 CodeIgniter 更新或删除页面背后的逻辑

i can't figure out the logic behind update or delete pages using jquery and codeigniter

提问人:Ahmed Hagrasi 提问时间:11/3/2023 更新时间:11/3/2023 访问量:34

问:

所有三个组件(视图及其jQuery函数和控制器)都不起作用,我尝试了很多。有什么帮助吗? 我得到了这个“所有用户”视图 它有一个所有用户的循环 在同一页面上,我有一个jquery,只是为了转到控制器,该控制器在视图中加载所需ID的“updateProfile”视图 然后,在指定的控制器中,我得到了函数editProfileByID()

我试图通过jQuery $.post方法将UserID传递给控制器,并且控制器收到了它,但它不会移动到包含已处理数据的更新视图

<td align="center">
  <a class="editProfile" rel="<?= $row['id'] ?>" href="#">
    <img src="<?= base_url() ?>images/operations.JPG" width="50" height="50">
  </a>
</td>

在同一页面上,我有一个jquery,只是为了转到控制器,该控制器在视图中加载所需id的“updateProfile”视图,如下所示:

$(document).ready(function() {
    $('.editProfile').click(function() {
                        var id = $(this).attr('rel');
                        $.post("<?= base_url() ?>index.php/Users/editProfileByID", {
                            id: id,
                        }, function(data) {
                            if (data != "0") {
                                alert(data);
                            } else {
 
                            }
                        });
});

然后,在指定的控制器中我得到了这个函数:

function editProfileByID()
    {
        $userID = $this->input->post('id');
        $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);
        return "success";
    }
php html jquery codeigniter 控制器

评论

0赞 Adi 11/3/2023
在 load->view() 打印出来之前做什么。另外,为什么在尝试加载视图时需要返回“success”?我会删除它。此外,您还需要 2 个单独的函数,一个可以帮助您加载,另一个用于编辑配置文件,您可以在其中返回“成功”或“失败”。echo $data;
0赞 Ahmed Hagrasi 11/3/2023
@Adi是的,你是对的,这就是我的计划。但问题出在第一部分“加载更新视图”中,我删除了控制器中的“返回”行。我把它放在只是为了跟踪代码。当我在jQuery中提醒数据时,它会获取所需更新视图页面的HTML代码。
0赞 Adi 11/3/2023
然后你需要回溯一点,首先通过直接加载视图而不传递任何参数或将 load->view() 放在顶部进行调试,也是“includes/template”模板是你尝试加载的 html 文件吗?
0赞 Pippo 11/3/2023
editProfileById() 加载视图,但随后必须将其返回给必须显示/管理它的调用方
0赞 Ahmed Hagrasi 11/3/2023
@Adi我终于弄清楚了,我所要做的就是在控制器中调整 editProfileByID() 方法以接收一个变为 editProfileByID(userID) 的参数,然后我通过将 href 属性的值添加到控制器方法并将参数传递给它来编辑视图 html。<a class=“editProfile” href=“<?= base_url() ?>index.php/Users/editProfileByID/<?= $row['id'] ?>”> </a> 并删除任何 jquery 代码。而且效果很好。....经验教训 -->将数据从视图传递到控制器,而无需在 jQuery 中使用 POST 请求或 S.post 方法。

答: 暂无答案