php - Codeigniter ajax live search odd even issue -


i have been trying show suggestion search key words not show suggestions. , meantime have used search form button submit search keywords show results on page. , search button working suggestions not loading somehow.

this controller:

public function autocomplete() {         $this->load->model('search');         $keyword = $this->input->post('s_keywords');         $data = $this->search->getrow($keyword);                 echo json_encode($data);             }  

this model:

public function getrow($keyword){                         $this->db->select('n_id, n_title, n_date, n_description');             $this->db->like('n_title',$keyword, 'after');             return $this->db->get('tbl_news')->result_array();         } 

this view:

<form class="navbar-form navbar-left" role="search" method="post" action=" <?php echo base_url() .'index.php/galle/search' ?>">                     <div class="form-group input-group" id="search_bar" style="">                         <input id="s_keywords" name="s_keywords" type="text" class="form-control search_bar" placeholder="search for..."  autocomplete="off">                         <ul class="dropdown-menu txtcountry" role="menu" aria-labelledby="dropdownmenu"  id="dropdowncountry"></ul>                         <span class="input-group-btn">                             <button id="search_key" class="btn btn-default" type="submit"><span class="glyphicon glyphicon-search"></span></button>                         </span>                     </div>                 </form> 

javascript (main.js):

 $(document).ready(function () {     $("#s_keywords").keyup(function () {         $.ajax({             type: "post",             url: "http://localhost/site_new/index.php/galle/autocomplete",             data: {                 keyword: $("#s_keywords").val()             },             datatype: "json",             success: function (data) {                 if (data.length > 0) {                     $('#dropdowncountry').empty();                     $('#s_keywords').attr("data-toggle", "dropdown");                     $('#dropdowncountry').dropdown('toggle');                 }                 else if (data.length == 0) {                     $('#s_keywords').attr("data-toggle", "");                 }                 $.each(data, function (key,value) {                     if (data.length >= 0)                         $('#dropdowncountry').append('<li role="presentation" >' + value['n_title'] + '</li>');                     //$('#dropdowncountry').append('<li role="presentation" ><a role="menuitem dropdownnameli" class="dropdownlivalue">' + value['n_title'] + '</a></li>');             });         }     }); });     $('ul.txtcountry').on('click', 'li a', function () {         $('#s_keywords').val($(this).text());     }); }); 

update 1

now i'm getting column data instead of search keyword suggestions, how suggestions according keywords

update 2

suggestions appears when put odd keywords eg: a, abc , doesn't work when put ab, abcd keywords

public function autocomplete() {     $this->load->model('search');     $keyword = $this->input->post('s_keywords');     $data = $this->search->getrow($keyword);             echo json_encode($data);         }  

shouldn't $keyword should these $keyword = $this->input->post('keyword'); in view after success in ajax call, love have

 success: function (data) {             if (data.length > 0) {                  $('#dropdowncountry').empty();                 $('#s_keywords').attr("data-toggle", "dropdown");                 $('#dropdowncountry').dropdown('toggle');                $.each(data, function (key,value) {                 if (data.length >= 0)                     $('#dropdowncountry').append('<li role="presentation" >' + value['n_title'] + '</li>');                 //$('#dropdowncountry').append('<li role="presentation" ><a role="menuitem dropdownnameli" class="dropdownlivalue">' + value['n_title'] + '</a></li>');         });              }             else if (data.length == 0) {                 $('#s_keywords').attr("data-toggle", "");             }     } 

Comments