我正在尝试打开一个表单,以通过AJAX更新用户详细信息。但是我似乎无法传递任何东西。我可以得到一些帮助吗?
我的想法是,现在隐藏了一个HTML表单,当用户单击按钮时,该行ID会通过ajax发送到控制器,然后发送到模型。如何将数据取回控制器并显示在表单上?
到目前为止,控制台日志或警报中没有任何内容。
我的看法
<div id="edit-dialog">
<?php echo form_open('manager/users/edit_user'); ?>
<p>First Name : <input type="text" name="firstname"/></p>
<p>Last Name : <input type="text" name="lastname"/></p>
<p>NRIC : <input type="text" name="nric"/></p>
<p>Address : <input type="text" name="address"/></p>
<p>Username : <input type="text" name="username"/></p>
</form>
</div>
我的jQuery代码
$('.editlink').on('click', function() {
var user_id = $(this).parent().parent('tr').attr('data-id');
$.ajax({
url: '/manager/agent/users/get_user',
type: 'POST',
dataType:'json',
data:{'id':user_id},
cache:false,
success:function(result){
$("#edit-dialog").show();
// console.log(result);
var result = $.parseJSON(result);
console.log(result.id);
// $('#name').html(result.id);
// $('#id').html(result.id);
}});
});
我的控制器
function get_user()
{
$id = $this->input->post('id');
$this->load->model('user');
$data = $this->user->retrieve($id);
echo json_encode($data);
return json_encode($data);
}
public function retrieve($id)
{
$this->db->where('id',$id);
$query = $this->db->get($this->tablename);
if($query->num_rows()==1)
{
return $query->result_array();
}
else
{
return $query->result_array();
}
}
最佳答案
尝试在控制器中回显或死亡
echo json_encode($data);
要么
die(json_encode($data));
您将在结果变量中获取数据
success:function(result){
var result = $.parseJSON( result );
$('#name').html(result.name);
$('#id').html(result.id);
}
`