【问题标题】:How to pass a parameter from a view to the controller with Ajax? Codeigniter如何使用 Ajax 将参数从视图传递到控制器?代码点火器
【发布时间】:2019-10-24 21:38:37
【问题描述】:

我只是在学习,我希望你能帮我解决这个问题:我有两个视图,在视图 1 中它显示了一个用户列表,当点击其中任何一个时,你必须打开另一个视图来显示有关信息该用户在视图 2 中。 为此,我在视图 1 中使用 js 捕获用户的 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();
    }

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

【问题讨论】:

  • it doesn't work 是什么意思?发生任何错误?或者您只是没有连接到数据库,为什么没有任何响应?

标签: ajax codeigniter codeigniter-3


【解决方案1】:

试试这个,我觉得应该有错字

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-12-25
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-10
        • 1970-01-01
        • 2020-06-08
        相关资源
        最近更新 更多