我正在尝试打开一个表单以通过 AJAX 更新用户详细信息。但我似乎无法回传任何东西。我可以得到一些帮助吗?
我的想法是,现在有一个隐藏的 HTML 表单,当用户单击按钮时,行 id 会通过 ajax 发送到 Controller ,然后发送到模型。如何将数据检索回 Controller 并将其显示在表单上?
到目前为止,控制台日志或警报中没有显示任何内容。
我的观点
<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);
}});
});
我的 Controller
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();
}
}
最佳答案
尝试在 Controller 中回显或死亡
echo json_encode($data);
或
die(json_encode($data));
您将在结果变量中获取数据
success:function(result){
var result = $.parseJSON( result );
$('#name').html(result.name);
$('#id').html(result.id);
}
`
关于javascript - CodeIgniter 将 AJAX 数据传递回 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846981/