Php 如何从codeigniter控制器接收ajax响应?
我有一个将数据发送到模型的控制器,模型将这些数据插入mysql 我想知道插入的行的最后一个ID,但我想在ajax函数中使用这个ID来向上转换表中的信息 以下是我所拥有的: 模型:Php 如何从codeigniter控制器接收ajax响应?,php,jquery,ajax,codeigniter,response,Php,Jquery,Ajax,Codeigniter,Response,我有一个将数据发送到模型的控制器,模型将这些数据插入mysql 我想知道插入的行的最后一个ID,但我想在ajax函数中使用这个ID来向上转换表中的信息 以下是我所拥有的: 模型: public function add($nome, $documento) { $dados = array ( 'nome' => $nome, 'documento' => $documento ); $this
public function add($nome, $documento)
{
$dados = array (
'nome' => $nome,
'documento' => $documento
);
$this->db->insert('clientes', $dados);
return $this->db->insert_id();
}
控制员:
public function add()
{
// validar
$nome = $this->input->post('inputNome');
$documento = $this->input->post('inputDocumento');
$this->Cliente_model->add($nome, $documento);
return "ok";
}
ajax功能:
$(document).ready(function(){
$("#salvarCliente").click(function(){
$.ajax({
url: "cliente/add",
type: 'POST',
data: $("#formCliente").serialize(),
success: function(msg){
alert(msg);
$("#clienteMensagem").html('Cliente cadastrado com sucesso!');
$("#table-clientes tr:last").after('<tr><td>'+msg+'</td><td>' + $('#clienteNome').val() + '</td><td>' + $('#clienteDocumento').val() + '</td><td></td></tr>');
$("#clienteNome").val('');
$("#clienteDocumento").val('');
}
});
return false;
});
});
$(document).ready(function(){
$("#salvarCliente").click(function(){
$.ajax({
url: "cliente/add",//Enter full URL
type: 'POST',
dataType:'JSON',
data: $("#formCliente").serialize(),
success: function(msg){
alert(msg);
$("#clienteMensagem").html('Cliente cadastrado com sucesso!');
$("#table-clientes tr:last").after('<tr><td>'+msg+'</td><td>' + $('#clienteNome').val() + '</td><td>' + $('#clienteDocumento').val() + '</td><td></td></tr>');
$("#clienteNome").val('');
$("#clienteDocumento").val('');
}
});
return false;
});
});
$(文档).ready(函数(){
$(“#salvarclient”)。单击(函数(){
$.ajax({
url:“客户/添加”,
键入:“POST”,
数据:$(“#formCliente”).serialize(),
成功:功能(msg){
警报(msg);
$(“#clientmensage”).html('clienteCadastrado com successo!');
$(“#table clientes tr:last”)。在(''+msg++'+$('#clienteNome').val()++'+$('#clienteDocumento').val()+'')之后;
$(“#客户名称”).val(“”);
$(“#客户文档”).val(“”);
}
});
返回false;
});
});
代码将我的数据添加到mysql,但在发送数据之前,我无法在console.log上的控制器或浏览器中的警报中看到“ok”
我只想将“$this->db->insert_id()”的结果从我的模型返回到我的控制器,从我的控制器返回到我的ajax函数。更改如下:
控制员:
public function add()
{
// validar
$nome = $this->input->post('inputNome');
$documento = $this->input->post('inputDocumento');
$res = $this->Cliente_model->add($nome, $documento);
echo json_encode($res);
}
ajax功能:
$(document).ready(function(){
$("#salvarCliente").click(function(){
$.ajax({
url: "cliente/add",
type: 'POST',
data: $("#formCliente").serialize(),
success: function(msg){
alert(msg);
$("#clienteMensagem").html('Cliente cadastrado com sucesso!');
$("#table-clientes tr:last").after('<tr><td>'+msg+'</td><td>' + $('#clienteNome').val() + '</td><td>' + $('#clienteDocumento').val() + '</td><td></td></tr>');
$("#clienteNome").val('');
$("#clienteDocumento").val('');
}
});
return false;
});
});
$(document).ready(function(){
$("#salvarCliente").click(function(){
$.ajax({
url: "cliente/add",//Enter full URL
type: 'POST',
dataType:'JSON',
data: $("#formCliente").serialize(),
success: function(msg){
alert(msg);
$("#clienteMensagem").html('Cliente cadastrado com sucesso!');
$("#table-clientes tr:last").after('<tr><td>'+msg+'</td><td>' + $('#clienteNome').val() + '</td><td>' + $('#clienteDocumento').val() + '</td><td></td></tr>');
$("#clienteNome").val('');
$("#clienteDocumento").val('');
}
});
return false;
});
});
$(文档).ready(函数(){
$(“#salvarclient”)。单击(函数(){
$.ajax({
url:“客户/添加”,//输入完整url
键入:“POST”,
数据类型:'JSON',
数据:$(“#formCliente”).serialize(),
成功:功能(msg){
警报(msg);
$(“#clientmensage”).html('clienteCadastrado com successo!');
$(“#table clientes tr:last”)。在(''+msg++'+$('#clienteNome').val()++'+$('#clienteDocumento').val()+'')之后;
$(“#客户名称”).val(“”);
$(“#客户文档”).val(“”);
}
});
返回false;
});
});
您看不到“ok”,因为在ajax参数中您没有设置数据类型。添加一个参数dataType:json/html
,然后您将能够从控制器接收数据。
大概是这样的:
$.ajax({
url: "cliente/add",
type: 'POST',
data: $("#formCliente").serialize(),
dataType: 'JSON',
success: function(msg){
alert(msg);
}
});
并将控制器功能替换为此
public function add()
{
// validar
$nome = $this->input->post('inputNome');
$documento = $this->input->post('inputDocumento');
$id = $this->Cliente_model->add($nome, $documento);
echo json_encode($id);
}
为了使它更加定制,您可以使用这是另一种获得响应的方法
public function add()
{
// validar
$nome = $this->input->post('inputNome');
$documento = $this->input->post('inputDocumento');
$res = $this->Cliente_model->add($nome, $documento);
$this->output
->set_status_header(200)
->set_content_type('application/json', 'utf-8')
->set_output(json_encode($res , JSON_PRETTY_PRINT))
->_display();
exit;
}