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']); } });