2017-06-10 3 views
0

Hallo Jungs, ich bin sehr neu zu CakePHP und ich möchte Autocomplete in meinem Projekt implementieren. Ich habe zwei Javascript-Dateien jquery.autocomplete.js und jquery.autocomplete.min.js heruntergeladen und beide in mein Webroot-Verzeichnis gestellt. Ich habe ein Feld namens Stadt in meiner Datenbank, die ich automatisch vervollständigen muss. das Problem ist, dass mein sutocomple nicht feuert oder sogar keine Warnung anzeigt, wenn die Taste gedrückt wird.Autocomplete-Implementierung in CakePHP 2.4

mein Javascript-Code ist

<script src="../../webroot/js/jquery.autocomplete.js" 
    type="text/javascript"></script> 
<script src="../../webroot/js/jquery.autocomplete.min.js" 
type="text/javascript"></script> 
$(function() { 
$('#Usercity').autocomplete({ 
    alert("ashish"); 

    //dataType: "json" 
    minLength: 1, 
    source: function(request, response) { 
     $.ajax({ 
      url: "/User/autoComplete", 
      dataType: "jsonp", 
      data: { 
       featureClass: "P", 
       style: "full", 
       maxRows: 12, 
       term: request.term 
      }, 
      success: function(data) { 
       response($.map(data, function(el) { 
        return { label: el.id, value: el.city } 
       })); 
      } 
     }); 
    } 

    }); 

    }); 
    </script> 
      echo $this->Form- 
    >input('city',array('type'=>'text','label'=>'City')); 


    Controller code 


     public function autoComplete() { 
    Configure::write('debug', 0); 
    $this->layout = 'ajax'; 
    $query = $_GET['term']; 
    $items = $this->User->find('all', array(
     'conditions' => array('User.city LIKE' => $query . '%'), 
     'fields' => array('city'))); 

    foreach ($items as $item) { 
     $data[] = $item['Item']; 
    } 
    $data = json_encode($data); 
    echo $data; 
    exit; 
} 

}

Antwort

0

Problem zu beheben

das Problem ist mein sutocomple nicht feuert oder gar nicht auf die Warnung zeigt, wenn Taste gedrückt wird.

müssen Sie jQuery lib vor autocomplete.js so etwas wie

<script src="../js/jquery-last.version.number.js"></script> 

oder laden, wenn Sie wollen cakephp es für Sie tun (keine Notwendigkeit, ‚Js zu schreiben)

  echo $this->Html->script(array(
       'jquery-1.10.2.min', 
       'jquery.autocomplete' 
      ));