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
Post a Comment