我在使用Codeigniter的模型中的PHP代码
$return_arr =array();
$new_row =array();
foreach($query->result_array() as $row) {
$new_row['value'] = $row['test_type_name'];
$this->db->select('*');
$this->db->from('p_test');
$this->db->where('test_type_name',$new_row['value']);
$query_tt = $this->db->get();
$i =0;
foreach($query_tt->result_array() as $row_tt) {
$i++;
$new_row['test_name'.$i] = $row_tt['test_name'];
}
$new_row['inc_i'] = $i;
array_push($return_arr,$new_row);
}
echo json_encode($return_arr);
我的jQuery代码
$('#p_test_name').keydown(function () {
var id_no_t = document.getElementById('id_no').value;
$(this).autocomplete({
source: "<?php echo base_url(); ?>p_con/p_test_name/" + id_no_t,
minLength: 0,
autoFocus: true,
select: function (event, ui)
{
var tot_i = ui.item.inc_i;
for (i = 1; i <= tot_i; i++)
{
var test_name = 'test_name'+i;
test_name = ui.item.test_name;
$("#test_name"+i).val(test_name);
}
}
}
});
});
实际上我想用循环来获取价值。
如果我单独使用ui.item.test_name1,ui.item.test_name2 .......等没有循环。
然后Value变得完美,但是如果我像上面的代码那样使用循环,则值未定义。
请告诉我,如何解决?
答案 0 :(得分:1)
您正在使用ui.item.test_name
作为密钥的test_name
。如果我正确理解您的问题,您愿意做的是使用test_name
的值作为关键。试试这个:
for (i = 1; i <= tot_i; i++)
{
var test_name = 'test_name' + i;
test_name = ui.item[test_name];
$("#test_name"+i).val(test_name);
}
对于ui.item['test_name1']
的每个值,这应该有效地使用ui.item.test_name1
或对象样式表示法i
。
另外在旁注中,您使用var
关键字重新声明test_name。声明它一次很好,更好的代码可读性。只声明一次变量。