我是JavaScript新手,我試圖按照this教程。codeigniter jquery的自動完成功能無法正常工作,但沒有錯誤
我有一個文本框(輸入),我想通過從MySQL加載一些數據來使用jQuery的自動完成功能。
這是我的控制器代碼:
public function autocomplete() {
if($this->input->post('txt_nama'))
$this->absensi_m->get_umat($this->input->post('txt_nama'));
/*if (isset($_GET['term'])){
$q = strtolower($_GET['term']);
$this->absensi_m->get_umat($q);
}*/
}
這是我的模型:
public function get_umat($word) {
$this->db->select('nama', 'tanggal_lahir');
$this->db->like('nama', $word);
$query = $this->db->get('msumat');
if($query->num_rows() > 0)
{
foreach($query->result_array() as $row)
{
$new_row['label'] = htmlentities(stripslashes($row['nama']));
$new_row['value'] = htmlentities(stripslashes($row['tanggal_lahir']));
//build array
$row_set[] = $new_row;
}
echo json_encode($row_set);
}
}
這是我的javascript:
<script type="text/javascript">
$(function(){
$("#txt_nama").autocomplete({
source: "autocomplete"
});
});
</script>
我試圖通過檢查的JavaScript firefox的螢火蟲和GC的開發者工具,這就是我得到的:
<input type="text" id="txt_nama" name="txt_nama" class="ui-autocomplete-input" autocomplete="off">
注意,自動完成是關閉。我想這就是問題所在,所以我試圖將此代碼添加到打開它:
$(document).ready(function() {
$("#txt_nama").attr("autocomplete", "on");
});
的自動完成元件接通上當我添加此代碼,但是自動完成仍然不工作。
我還試圖用回聲,但我的回聲沒有工作:
if($query->num_rows() > 0)
{
echo num_rows();
echo 'a';
foreach($query->result_array() as $row)
{
$new_row['label'] = htmlentities(stripslashes($row['nama']));
$new_row['value'] = htmlentities(stripslashes($row['tanggal_lahir']));
//build array
$row_set[] = $new_row;
}
echo json_encode($row_set);
//return row_set;
}
我缺少什麼?
注: 我只是想知道Routes
,它是與此相關的錯誤,因爲通常情況下,人們在source:
(JavaScript)的使用controller/method
,但我不能這樣做,因爲生成的路線將有雙控制器( index.php/absensi/absensi/autocomplete
),所以我除去controller
,只是使用的方法(source: "absensi"
)
感謝您的幫助:D看來你的控制器代碼給出一個錯誤,我嘗試現在來解決它:d –