Witam.

Chciałem wykonać auto uzupełnianie przy użyciu CodeIgnitera oraz jQuery ale jakoś nie wychodzi. Kod wygląda następująco:

Widok:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Autocomplete example</title>
  5. <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  6. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  7. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  8. <script type="text/javascript">
  9. $(document).ready(function() {
  10. $(function() {
  11. $( "#autocomplete" ).autocomplete({
  12. source: function(request, response) {
  13. $.ajax({ url: "<?php echo site_url('site/suggestions'); ?>",
  14. data: { term: $("#autocomplete").val()},
  15. dataType: "json",
  16. type: "POST",
  17. success: function(data){
  18. response(data);
  19. }
  20. });
  21. },
  22. minLength: 2
  23. });
  24. });
  25. });
  26. </head>
  27. Text: <input type="text" id="autocomplete" />
  28. </body>
  29. </html>


Kontroler:

Funkcja odpowiedzialna za podpowiedzi:

  1. function suggestions()
  2. {
  3.  
  4. $this->load->view('autocomplete');
  5. $this->load->model('data_model');
  6. $term = $this->input->post('term');
  7.  
  8. $this->db->select('login');
  9. $this->db->like('login', $term);
  10. $query = $this->db->get('uzytkownicy');
  11.  
  12. $podpowiedzi = array();
  13. foreach ($query->result() as $row)
  14. array_push($podpowiedzi, $row->login);
  15.  
  16. // Return data
  17. echo json_encode($podpowiedzi);
  18. }


Model:

  1. function GetAutocomplete($options = array())
  2. {
  3. $this->db->select('login');
  4. $this->db->like('login', $options['login']);
  5. $query = $this->db->get('uzytkownicy');
  6. return $query->result();
  7. }


Wynik:
http://img135.imageshack.us/img135/8020/cl...clipboardeb.png
Pobiera dane dobrze z bazy, ale wyświetla je obok pola tekstowego, a jak wiemy powinno po wpisaniu jakiejś razy w inpucie. Z góry dziękuję za pomoc.