我是 javascript 新手,我尝试按照本教程进行操作。
我有一个文本框(输入),我想通过从 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>
我尝试使用 firefox 的 firebug 和 GC 的开发工具检查 javascript,这就是我得到的:
<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
,它与这个错误有关吗?因为通常人们使用controller/method
(source:
JavaScript),但我不能这样做,因为生成的路由将有双控制器(index.php/absensi/absensi/autocomplete
),所以我删除controller
并只使用方法 ( source: "absensi"
)