您正在使用codeigniter,我想创建依赖输入文本,如下例所示:
我有三个字段的号码,姓名,社会,我想在用户输入号码时自动填写姓名和社会:
这是我在Mysql中的表的结构:
人(身份证,号码,姓名,社会)
S的形式如下:这是我的观点:
视图
<table>
<tr>
<td valign="top">Telephone<span style="color:red;">*</span></td>
<td>
<input type="text" name="telephone" class="text" id="telephone"/>
<?php echo form_error('telephone'); ?>
</td>
</tr>
<tr>
<td valign="top">Usager<span style="color:red;">*</span></td>
<td>
<input type="text" name="usager" class="text" id="usager" readonly="readonly">
<?php echo form_error('nbcas'); ?>
</td>
</tr>
<tr>
<td valign="top">society<span style="color:red;">*</span></td>
<td>
<input type="text" name="society" class="text" id="society" readonly="readonly">
<?php echo form_error('nbcas'); ?>
</td>
</tr>
<td><input type="submit" value="Enregistrer"/></td>
</tr>
</table>
我的控制器:
public function GetUsager()
{
if($this->input->is_ajax_request())
{
$telephone = $this->input->post('phone');
$data['row'] = $this->structure->GetUsagerId($telephone);
header('Content-Type: application/json',TRUE);
//echo(json_encode($this->structure->GetUsagerId($usager)));
// echo json_encode($data['usager']);
echo json_encode($data);
}
}
和我的模特
function GetUsagerId ($telephone)
{
$this->db->select('name','society');
$this->db->where('numberphone',$telephone);
$query=$this->db->get('Person');
if($query->num_rows() > 0)
{
$row = $query->row();
return $row;
}
}
视图中的jquery代码
$('#telephone').keyup(function() {
var phone = $('#telephone').val();
var baseurl = "<?= base_url(); ?>";
$.ajax({
type : "POST",
url : baseurl+"index.php/main/GetUsager",
dataType: 'json',
data : phone,
success: function(data) {
$("#usager").append(data.row);
}
});
});
没有任何事情发生。
答案 0 :(得分:0)
在你的ajax请求代码中:
$.ajax({
type : "POST",
url : baseurl+"index.php/main/GetUsager",
dataType: 'json',
data : phone,
success: function(data) {
$("#usager").append(data.row);
}
您应该将$("#usager").append(data.row)
更改为$("#usager").val(data.row.name)
。
编辑:您还应将data: phone
更改为data: "phone=" + phone
。
此外,我认为你应该参考data.row.name
来阅读这个名字。我已从data.row
更改为data.row.name
。检查您如何格式化JSON输出。