我正在尝试从控制器发送数据以通过Ajax在Codeigniter中查看,但是我一直收到此错误:
遇到PHP错误 严重程度:注意 消息:未定义的变量:usuario 文件名:views / buscar_view.php 行号:92
这是我通过Ajax向控制器发送数据的视图,它也显示 整个过程后的信息
//buscar_view:
<?php
$diva="<div id='tabla6' align=center>";
$divc="</div>";
$salto_linea="<br><br>";
echo $diva;
echo form_label('Ingrese su Cedula:').$salto_linea;
echo form_input(array('type'=>'text', 'name'=>'cedula','required'=>'true','id' => 'ccedula')).$salto_linea;
echo form_submit(array('value'=>'Buscar','id' =>'enviarcedula'));
echo form_close();
echo $divc;
?>
//Ajax request
$(document).ready(function(){
$("#enviarcedula").click(function(){
var cedula=$("#ccedula").val();
peticionUsuario(cedula);
});
});
function peticionUsuario(cedulajs)
{
var parametros={
"cedula":cedulajs
}
$.ajax({
data:parametros,
type:"post",
url:'<?php echo base_url();?>usuario_controller/recibePeticionUsuarioAjax',
success: function(respuesta){
alert("Informacion de usuario");
}
});
}
//Displaying data in the view
<?php
foreach ($usuario as $u) {
//forma nueva
echo "<tr>
<td>{$u->cedula}</td>
<td>{$u->nombre}</td>
<td>{$u->apellido}</td>
<td>{$u->direccion}</td>
<td>{$u->telefono}</td>
</tr>" ;
}
echo '</table>';
echo '</div>';
?>
//controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class usuario_controller extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model("usuario_model");
}
public function recibePeticionUsuarioAjax()
{
if($this->input->post())
{
$cedula=$this->input->post('cedula');
$usuario=$this->usuario_model->buscarUsuario($cedula);
$this->load->view("buscar_view" , compact('usuario'));
}
}
}
//model
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class usuario_model extends CI_Model
{
public function buscarUsuario($cedula)
{
$query=$this->db->get_where('usuario',$cedula);
return $query;
}
}
?>
我该如何解决?我已经尝试了很多,没有任何改变
答案 0 :(得分:0)
这是行不通的,因为在您的模型中您不会返回查询结果。使用这个:
public function buscarUsuario($cedula)
{
$query=$this->db->get_where('usuario',$cedula);
return ($query->num_rows()) ?$query->result():false; // returns false, if query has no results
}
然后将控制器更改为这些行
$data['usuario']=$this->usuario_model->buscarUsuario($cedula);
$this->load->view("buscar_view" , $data);
,您认为类似:
if($usuario==false){echo 'no records found'; }
else{
foreach ($usuario as $u) {
//forma nueva
// your code
}
}
答案 1 :(得分:0)
在您的控制器中更改
if($this->input->post())
{
$cedula=$this->input->post('cedula');
$usuario=$this->usuario_model->buscarUsuario($cedula);
$this->load->view("buscar_view" ,array ('usuario'=>$usario);
}