[Solved] Using $.post, $.ajax or AJAX properly in CodeIgniter to call a PHP script


Yes, you will need to put your file inside the libraries folder(if the class is separate from codeigniter or is shared among many controllers, if not a Model would suffice), then create a controller for it.

class Ajax_Controller extends CI_Controller
{

    public $statusCode = 200;

    public $response = array();

    public function __construct()
    { 
       parent::__construct();

       if(!$this->is_ajax_request()){
          return; // direct access not allowed
       }

       $this->response = array(
           'error' => false,
           'text'  => "",
           'fields' => array()
       );
    }

    public function sendResponse()
    {
        return $this->output
                    ->set_status_header($this->statusCode)
                    ->set_content_type('application/json')
                    ->set_output(json_encode($this->response));
    }
}
class Auth extends Ajax_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->library('php-parser/script', 'authentication');
    }

    public function login()
    {

        if(!$this->form_validation->run()){
            $this->response = array(
               'error' => true,
               'text'  => "The form has some errors",
               'fields' => array(
                   'username' => form_error('username'),
                   'password' => form_error('password')
               )
           );
           return $this->sendResponse();
        }

        $username= $this->input->post('username');
        $password= $this->input->post('password');

        if(!$this->authentication->login($username, $password)){
            $this->response = array(
                'error' => true,
                'text'  => "incorrect username/password combination",
                'fields' => array() 
            );
            $this->statusCode = 401;
            return $this->sendResponse();
        }


    }
}

2

solved Using $.post, $.ajax or AJAX properly in CodeIgniter to call a PHP script