KSI Posted October 27, 2021 Share Posted October 27, 2021 I'm currently passing values in my URL that I want to GET and insert in my controller class for filtering. My current URL looks something like this: http://localhost/reports/lists?source=Product1&status=4. Now to get the value of suppose source, I'm using the following code: let searchParams = new URLSearchParams(window.location.search); var status = searchParams.get('source'); Now I want this status variable to go to my controller class so that I can use it as 1 of my parameters for my model class: Full code: View Class: <?php $postd = json_encode(array_filter($post)); ?> <table id="item-list"> <tr> <th>Ref.No#</th> <th>Source</th> </tr> </table> <script> $(document).ready(function() { function sendreq(){ setpostdatas();cleartable();getleads(); } var userrole = "<?php echo $this->session->userdata('clientrole')?>"; var slug = '<?php echo $slug?>'; var postd = '<?php echo $postd; ?>'; if( userrole > 1 && userrole != 5){ $('#item-list').DataTable({ "processing": true, "stateSave": true, "serverSide": true, "ordering": false, "createdRow": function( row, data, dataIndex){ $(row).has( "div.overdueupdate" ).css('background-color','#FFC7CE'); }, "ajax": { url: "<?php echo site_url(); ?>reports/loadLeads", data: {slug: slug, postdata: postd}, type : 'POST', "dataSrc": function ( d ) { d.myKey = "myValue"; if(d.recordsTotal == 0 || d.data == null){ $("#item-list_info").text("No records found"); $("#item-list_processing").css("display","none"); } return d.data; } }, 'columns': [ {"data": "id", "id": "id"}, {"data": "refno", "refno": "refno"}, {"data": "source", "source": "source"}, ] }); } Controller Class: public function loadLeads($p=''){ $leadsource = $this->input->get('status'); if(isset($_POST['postdata'])){ if($_POST['postdata'] != null && $_POST['postdata'] != 'null'){ $post=$_POST['postdata']; } $post = json_decode($post,true); unset($post['slug']); unset($post['page']); $sort = $post['afsort']; if($sort == "asc"){ $sortQ = 'l.updated_date asc,'; }else if ($sort == "desc"){ $sortQ = 'l.updated_date desc,'; } } $offset = (int)$_POST['start'] ; $pstdatas = explode(',', $_POST['postdata']); unset($pstdatas['item-list_length']); if($this->session->userdata('clientrole') == 1 || $this->session->userdata('clientrole') == 5 ){ $content['leads']=$this->leads_model->get_pagination($_POST['length'],$offset,$where,'',false,$sortQ?$sortQ:'l.assign_status =\'Unassigned\' desc,',$all,$leadsource); }else{ $content['leads']=$this->leads_model->get_pagination($_POST['length'],$offset,$where,'',false,$sortQ?$sortQ:'l.assigned_date desc,',$all,$leadsource); } Now here in my controller class I want that AJAX variable to be passed so that I can use it my model query. Quote Link to comment https://forums.phpfreaks.com/topic/314121-passing-information-from-ajax-to-controller-class/ Share on other sites More sharing options...
maxxd Posted October 28, 2021 Share Posted October 28, 2021 None of what you've given us makes sense given what you say the problem is. Assuming the line of code you say you're using: let searchParams = new URLSearchParams(window.location.search); var status = searchParams.get('source'); actually is in your code - it doesn't appear in any of the code you posted - you still don't send the variable 'status' (which theoretically includes the value of the URL parameter 'source', not 'status' as the variable name implies) to $site_url()/reports/loadLeads. Also, you need to send an AJAX call to a php script (that ends in .php) and from there you can call a function - you can't call the actual php function from the URL string. And even if it did work that way, your loadLeads() method only accepts one parameter (which, admittedly, it doesn't seem to actually use), but your JS data object contains two. There's more beyond this, but quite honestly you need to take a step back and pick up some basics. Learn to walk before you run - I remember learning AJAX back in the day and it made no sense whatsoever until I'd done enough base-level work to actually get it. The penny dropped and it hasn't been a problem since. Quote Link to comment https://forums.phpfreaks.com/topic/314121-passing-information-from-ajax-to-controller-class/#findComment-1591499 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.