我正在尝试打开一个表单,以通过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);
}


`

10-04 10:47
查看更多