How to use ajax in codeigniter 4 How to use ajax in codeigniter 4 codeigniter codeigniter

How to use ajax in codeigniter 4


Here is the sample code of ajax. (Make sure that you have defined route/controller method for search url)

$.ajax({      url:<?php echo base_url('search'); ?>,    type: 'post',    dataType:'json',    data:{query:query},    success:function(data){        alert(data);    }  });

CI4 Code to get the request data

if ($this->request->isAJAX()) {    $query = service('request')->getPost('query');    var_dump($this->request->getPost('query'));}

Also, make sure to update csrf token on every request if you are not reloading a page on success. Also, you need to return csrf token in method.So in that case your method will look like -

if ($this->request->isAJAX()) {        $query = service('request')->getPost('query');        //var_dump($this->request->getPost('query'));        return json_encode(['success'=> 'success', 'csrf' => csrf_hash(), 'query ' => $query ]);    }

So in that case your ajax code will look like -

$.ajax({          url:<?php echo base_url('search'); ?>,        type: 'post',        dataType:'json',        data:{query:query},        success:function(data){           var result = JSON.parse(data);            $("input[name='csrf_test_name']").val(result['csrf']);        }      });