Auto Complete in CodeIgniter using jquery from database

Expert User Verified
Autocomplete any text from the data present in the database.
function getUsers($postData){

     $response = array();

     if(isset($postData['search']) ){
       // Select record
       $this->db->select('*');
       $this->db->where("product_name_en like '%".$postData['search']."%' ");

       $records = $this->db->get('product')->result();

       foreach($records as $row ){
          $response[] = array("value"=>$row->product_id,"label"=>$row->product_name_en);
       }

     }
<!doctype html>
<html>
  <head>
    <title>How to Autocomplete textbox in CodeIgniter with jQuery UI</title>

    <!-- jQuery UI CSS -->
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
  </head>
  <body>

    Search User : <input type="text" id="autouser">

    <br><br>
    Selected user id : <input type="text" id="userid" value='0' >

    <!-- Script -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <!-- jQuery UI -->
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    <script type='text/javascript'>
    $(document).ready(function(){

     // Initialize 
     $( "#autouser" ).autocomplete({
        source: function( request, response ) {
          // Fetch data
          $.ajax({
            url: "<?=base_url()?>/welcome/userList",
            type: 'post',
            dataType: "json",
            delay:0,
            data: {
              search: request.term
            },
            success: function( data ) {
              response( data );
            }
          });
        },
        select: function (event, ui) {
          // Set selection
          $('#autouser').val(ui.item.label); // display the selected text
          $('#userid').val(ui.item.value); // save selected id to input
          return false;
        }
      });

    });
    </script>
  </body>
</html>
public function userList(){
    // POST data
    $postData = $this->input->post();

    // Get data
    $data = $this->main_model->getUsers($postData);

    echo json_encode($data);
  }

     return $response;
  }

It will search the data from the tables and display the list of matching text in the textbox.  In this, I have used ajax to autocomplete the text from the tables inside the database.

Please find the code in right-hand side.

Comments

Leave a Comment