Как передать параметр из представления в контроллер с Ajax? Codeigniter - PullRequest
0 голосов
/ 25 октября 2019

Я только учусь, и я хотел бы, чтобы вы помогли мне решить эту проблему: у меня есть два представления, в представлении 1 показано мне список пользователей, при щелчке по любому из них вы должны открыть другое представление, отображающее информацию оэтот пользователь в представлении 2. Для этого в представлении 1 с помощью js я фиксирую идентификатор пользователя и отправляю его контроллеру с помощью ajax, а в контроллере отправляет его в модель, а ответ модели возвращает контроллеру и отправляет его в view2, чтобы показать толькоинформация выбранного пользователя, вопрос в том, что он не работает, не могли бы вы мне помочь, что я делаю не так? Представление 1: Это абзац, в котором вы щелкаете и фиксируете идентификатор и ajax, который отправляет этот идентификатор контроллеру. View1

<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 голосов
/ 26 октября 2019

Ваш второй вид загружается после вызова ajax? Печатали ли вы возвращаемые данные в ajax успешно, потому что вы определяете dataType: "html" в ajax, но вы возвращаете данные json из контроллера.

0 голосов
/ 29 октября 2019

Спасибо за ваши ответы, это вышло. Я должен был напечатать на представление таким образом, чтобы увидеть данные:


<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>
0 голосов
/ 25 октября 2019

попробуйте, я думаю, что должна быть опечатка

<p onclick="detalles('<?php echo $p->usuarioId ?>');"> <?php echo $p->usuarioId; ?>
<i class="fa fa-check-circle"></i> <?php echo $p->user ?></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...