如何在aign中访问我的控制器以获取codeigniter?

时间:2016-05-08 16:48:47

标签: php codeigniter

我一直在尝试直接使用site_url,base_url,url但没有任何改变,也给了我错误404

function mostrarDatos(valor){
    $.ajax({
        url:"http://localhost/empresa/empleados/mostrar",
        type:"POST",
        data:{buscar:valor},
        success:function(respuesta){
            //alert(respuesta);
            var registros = eval(respuesta);

            html ="<table class='table table-responsive table-bordered'><thead>";
            html +="<tr><th>#</th><th>Nombres</th><th>Apellidos</th><th>DNI</th><th>Telefono</th><th>Email</th><th>Accion</th></tr>";
            html +="</thead><tbody>";
            for (var i = 0; i < registros.length; i++) {
                html +="<tr><td>"+registros[i]["id_empleado"]+"</td><td>"+registros[i]["nombres_empleado"]+"</td><td>"+registros[i]["apellidos_empleado"]+"</td><td>"+registros[i]["dni_empleado"]+"</td><td>"+registros[i]["telefono_empleado"]+"</td><td>"+registros[i]["email_empleado"]+"</td><td><a href='"+registros[i]["id_empleado"]+"' class='btn btn-warning' data-toggle='modal' data-target='#myModal'>E</a> <button class='btn btn-danger' type='button' value='"+registros[i]["id_empleado"]+"'>X</button></td></tr>";
            };
            html +="</tbody></table>";
            $("#listaEmpleados").html(html);
        }
    });
}

控制器

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Empleados extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->model("Empleados_model");
    }

    public function index()
    {
        $this->load->view('frontend/empleados');
    }

    public function guardar()
    {
        //El metodo is_ajax_request() de la libreria input permite verificar
        //si se esta accediendo mediante el metodo AJAX 
        if ($this->input->is_ajax_request())
        {
            $nombres = $this->input->post("nombres");
            $apellidos = $this->input->post("apellidos");
            $dni = $this->input->post("dni");
            $telefono = $this->input->post("telefono");
            $email = $this->input->post("email");

            $datos = array(
                "nombres_empleado" => $nombres,
                "apellidos_empleado" => $apellidos,
                "dni_empleado" => $dni,
                "telefono_empleado" => $telefono,
                "email_empleado" => $email
            );
            if($this->Empleados_model->guardar($datos)==true)
            {
                echo "Registro Guardado";
            }
            else
            {
                echo "No se pudo guardar los datos";
            }
        }
        else
        {
            show_404();
        }
    }

    public function mostrar()
    {
        if ($this->input->is_ajax_request())
        {
            $buscar = $this->input->post("buscar");
            $datos = $this->Empleados_model->mostrar($buscar);
            echo json_encode($datos);
        }
        else
        {
            show_404();
        }
    }

    public function actualizar()
    {
        if ($this->input->is_ajax_request())
        {
            $idsele = $this->input->post("idsele");
            $nombres = $this->input->post("nombressele");
            $apellidos = $this->input->post("apellidossele");
            $dni = $this->input->post("dnisele");
            $telefono = $this->input->post("telefonosele");
            $email = $this->input->post("emailsele");
            $datos = array(
                "nombres_empleado" => $nombres,
                "apellidos_empleado" => $apellidos,
                "dni_empleado" => $dni,
                "telefono_empleado" => $telefono,
                "email_empleado" => $email
            );
            if($this->Empleados_model->actualizar($idsele,$datos) == true)
            {
                echo "Registro Actualizado";
            }
            else
            {
                echo "No se pudo actualizar los datos";
            }
        }
        else
        {
            show_404();
        }
    }

    public function eliminar()
    {
        if ($this->input->is_ajax_request())
        {
            $idsele = $this->input->post("id");
            if($this->Empleados_model->eliminar($idsele) == true)
            {
                echo "Registro Eliminado";
            }
            else
            {
                echo "No se pudo eliminar los datos";
            }
        }
        else
        {
            show_404();
        }
    }

}

1 个答案:

答案 0 :(得分:0)

从简单的ajax调用开始,一旦调用工作正常,就开始调用模型和其他控制器逻辑,所以我建议你在视图上用id="test_btn"创建一个按钮,然后在javascript使用此代码

$("#test_btn").click(function()
    {

        var target_url = '<?php echo(base_url()."empleados/mostrar") ; ?>'; 
        var data_to_send = {buscar:"123"};

        $.ajax(
        {
            url : target_url,
            data: data_to_send,
            type: "POST",
            success: function(return_data)
            {
                alert(return_data)

            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                console.log('textStatus='+textStatus);
                console.log('errorThrown='+errorThrown);
            }
        });

        // prevent default
        return false;
    });

然后在empleados控制器中只读取数据并将其返回到视图中,如此

public function mostrar()
    {
        $buscar = $this->input->post('buscar',TRUE);

        echo($buscar);
    }

那么你应该得到警告&#34; 123&#34;

一旦收到警报,然后开始添加其他逻辑,只需一步一步。还可以使用浏览器控制台(F12)来帮助您查看呼叫错误和成功呼叫

希望有所帮助!