如何使用Ajax从视图向控制器传递参数?点火枪

时间:2019-10-24 21:38:37

标签: ajax codeigniter codeigniter-3

我正在学习,我希望您能帮助我解决此问题:我有两个视图,在视图1中,它显示了一个用户列表,单击任何一个用户时,您必须打开另一个视图,该视图显示有关该用户在视图中2。 为了在js的视图1中做到这一点,我捕获了用户的id并通过ajax将其发送给控制器,然后在控制器中将其发送给模型,模型响应返回给控制器并将其发送给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();
    }

view2: 在这里您必须看到用户数据

<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>

3 个答案:

答案 0 :(得分:0)

尝试一下,我认为应该有错字

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

答案 1 :(得分:0)

ajax调用后您的第二个视图是否加载? 您是否成功在ajax中打印了返回数据,因为您在ajax中定义了dataType:“ html”但从控制器返回了json数据。

答案 2 :(得分:0)

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


<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 y view 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>