如何使用 Ajax 将参数从视图传递到控制器?代码点火器

How to pass a parameter from a view to the controller with Ajax? Codeigniter

我只是在学习,我希望你能帮助我解决这个问题:我有两个视图,在视图 1 中它显示了一个用户列表,当点击其中任何一个时你必须打开另一个视图显示视图 2 中有关该用户的信息。 要在视图 1 中使用 js 执行此操作,我捕获用户的 ID 并通过 ajax 将其发送到控制器,然后在控制器中将其发送到模型并将模型响应 returns 发送到控制器并发送它到view2,只显示所选用户的信息,问题是它不起作用,你能帮帮我吗,我做错了什么? 视图 1:这是您单击并捕获 id 和将该 id 发送到控制器的 ajax 的段落。 视图 1

<p onclick="detalles('<?=$p->usuarioId?>');"> <?=$p->usuarioId?><i class="fa fa-check-circle"></i> <?php echo $p->user ?></p>

<script>
    function detalles(id=null){
        $ (document) .ready (function () {
                 console.log(id);
                 $.ajax({
                    type: "POST",
                    data : {'id': id},
                    dataType:"html",
                    url: "usuarios_admin/ver",


                    success: function(result)
                    {

                    alert("good");
                  console.log("result",result);

                    }
                  });
            });
    }
</script>

控制器

    public function ver(){

         $id = $this->input->post("id");
          if($id != null) {
            $data = $this->PostUser->find($id);


            echo json_encode($data);
            $this->load->view('usuarios/vista2', $data);

          }
    }

型号:

function find($id){
        $this->db->select();
        $this->db->from($this->table);
        $this->db->where($this->table_id, $id);

        $query = $this->db->get();
        return $query->row();
    }

视图 2: 在这里你必须看到用户数据

<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 lininfo">
                            <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5 sinpa">
                                <p class="colorp">Name:</p>
                            </div>

                            <div class="col-lg-7 col-md-7 col-sm-7 col-xs-7 sinpa">
                                <p class="colorpi"><?php $data['name'] ?></p>
                            </div>
                        </div>

试试这个,我觉得应该是打错了

<p onclick="detalles('<?php echo $p->usuarioId ?>');"> <?php echo $p->usuarioId; ?>
<i class="fa fa-check-circle"></i> <?php echo $p->user ?></p>

ajax 调用后,您的第 2 个视图加载了吗? 您是否在 ajax 中成功打印了您的 return 数据,因为您在 ajax 中定义了 dataType:"html" 但您 return json 来自控制器的数据。

谢谢你的回答,已经出来了。 我必须以这种方式在视图上打印才能看到数据:


<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 lininfo">
                            <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5 sinpa">
                                <p class="colorp">Name :</p> 
                            </div>

                            <div class="col-lg-7 col-md-7 col-sm-7 col-xs-7 sinpa">
                                <p class="colorpi"><?php echo $user->name ?></p>
                            </div>
                        </div>

控制器:

    public function ver(){

         $id = $this->input->post("id");
          if($id != null) {
            $data['user'] = $this->PostUser->find($id);

            $this->load->view('usuarios/vista2', $data);

          }
    }

ajax 视图 1

<div class="hi">
<!-- here you would see the result of ajax -->
<div>

<script>
    function detalles(id=null){
        $ (document) .ready (function () {
                 console.log(id);
                 $.ajax({
                    type: "POST",
                    data : {'id': id},
                    dataType:"html",
                    url: "usuarios_admin/ver",


                    success: function(result)
                    {

                 $('.hi').html(result);

                    }
                  });
            });
    }
</script>