Неопределенная переменная при отображении данных в представлении через Codeigniter Ajax - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь отправить данные с контроллера для просмотра в Codeigniter через ajax, но я продолжаю получать эту ошибку:

Обнаружена ошибка 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;
    }

}

?>

Как я могу это исправить?я много пробовал и ничего не меняется

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Измените это в вашем контроллере

 if($this->input->post())
            {
                $cedula=$this->input->post('cedula');
                $usuario=$this->usuario_model->buscarUsuario($cedula);
                $this->load->view("buscar_view" ,array ('usuario'=>$usario);

            }
0 голосов
/ 17 июня 2019

это не работает, потому что в вашей модели вы не возвращаете результат запроса. Используйте это:

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
  }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...