Я пытался передать значение из ajax в контроллер codeigniter, используя метод post, но он возвращает void - PullRequest
0 голосов
/ 07 марта 2019

Я пытался сохранить значение ajax в переменной контроллера codeigniter, используя метод post. Я использовал метод $ this-> input-> post в контроллере, но переменная в контроллере не получает значение ajax, переменная возвращается как ноль, помогите найти решение этой ошибки Заранее спасибо.

Вот код:

Вид:

<button type="button" class="btn btn-info btn-md edit-pdt" data-pid="<?php echo $row->product_id;?>"><i class="fa fa-pencil"></i></button>

Контроллер:

public function displayprodt()
    {
        $pid= $this->input->get('pid');
        $data = array(
            'title' => "Edit Product",
            'result' => $this->ProductModel->displayprodt($pid)
        );
        $this->load->view('header',$data);
        $this->load->view('navbar');
        $this->load->view('sidebar');
        $this->load->view('editproduct',$data);
        $this->load->view('footer');
    }

JQuery:

$('.edit-pdt').click(function(){
        var base_url = $("#base_url").val();
        var pid = $(this).attr("data-pid");
        alert(pid);
        $.ajax({
           type: "GET",
           url: base_url+"index.php/Product/displayprodt",
           data: ({pid: pid}),
           success: function(response) {
             location.href = base_url+"index.php/product/displayprodt";
           }
        });
  });

Модель:

public function displayprodt($pid){
        $this->db->select("*");
        $this->db->from("todaysdeal_products");
        $this->db->where("product_id",$pid);
        $query = $this->db->get();
        return $query->result();
    }

Ответы [ 3 ]

0 голосов
/ 07 марта 2019

проблема в том, что ваша страница перенаправляет все, что вернулось из первого запроса. пожалуйста, попробуйте заменить location.href = base_url+"index.php/product/displayprodt"; на console.log(response); или alert(response);

0 голосов
/ 07 марта 2019

Я думаю, вам нужно создать контроллер для управления данными ajax. Я приведу пример:

Контроллер

public function displayprodt()
{
      $pid = $this->input->post('pid',true);

           $data=array(
                'error' =>false,
                'title' => 'Edit Product',
                'result' => $this->ProductModel->displayprodt($pid),
            );


      header('Content-Type: application/json');
      echo json_encode($data ,JSON_PRETTY_PRINT);
}

Модель

public function displayprodt($pid){
        $this->db->select("*");
        $this->db->from("todaysdeal_products");
        $this->db->where("product_id",$pid);
        $query = $this->db->get();
        return $query->result();
    }

Jquery

$('.edit-pdt').click(function(){
        var base_url = $("#base_url").val();
        var pid = $(this).attr("data-pid");
        alert(pid);
        $.ajax({
           type: "POST",
           url: base_url+"index.php/Api/displayprodt",
           data: ({pid: pid}),
           dataType: "JSON",
           success: function(response) {
             location.href = base_url+"index.php/product/displayprodt"; // or any url you want redirect.
           }
        });
  });

Надеюсь, вы найдете решение: ')

0 голосов
/ 07 марта 2019

Вы используете $this->input->post('pid'), тогда вы должны использовать POST в ajax.изменить

1: type: "GET", to type: "POST",
2: data: ({pid: pid}), to data: {pid: pid},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...