Muhammad Talha
Muhammad Talha

Reputation: 337

auto refresh controller function in codeigniter

hello everybody i want to refresh controller function after 5 sec automatically i am using header('Refresh: 10.2'); inside controller function like

public function delete()
    {

        header('Refresh: 10.2');
        $current_time=date('H:i:s',strtotime("+3 hours"));
        $email=$this->session->userdata['email'];
        $end_time=$this->model_user->get_res_endtime($email);
        if($current_time>$end_time || $current_time <'00:59:59')
        {
            $this->model_user->move_reserve($end_time,$email);

            $this->model_user->up_qty_del($email);

            $this->model_user->delete_reserve($end_time,$email);
        }

    }

but this refresh the whole page also have any method that will refresh only function? thanks in advance

Upvotes: 2

Views: 3694

Answers (1)

Ilanus
Ilanus

Reputation: 6928

For your request.. you can try something like this. Controller:

public function delete()
{

    $current_time=date('H:i:s',strtotime("+3 hours"));
    $email=$this->session->userdata['email'];
    $end_time=$this->model_user->get_res_endtime($email);
    if($current_time>$end_time || $current_time <'00:59:59')
    {
        $arr["message"] = "1";
        $this->model_user->move_reserve($end_time,$email);
        $this->model_user->up_qty_del($email);
        $this->model_user->delete_reserve($end_time,$email);
        print(json_encode($arr));
        exit;
    }

}

The jQuery:

$(document).ready(function () {
    (function delete() {
        //run the request
        $.ajax({
            type: "POST",
            url: "Controller/Deletefunction",
            async: true, //Hey browser! run the code
            //if we prased data run:
            success: function (data) {
                /* we prase data (data can be anything)
                 * data is json_encoded data format coming from
                 */
                var obj = JSON.parse(data);
                // if we prased data:
                if (obj) {
                    console.log(obj);
                    // chrome console log should show here "success"
                    if (obj.count > 0) {
                        // Schedule the next request when the current one's complete
                setTimeout(delete, 5000);
            }
        });
    })();

Upvotes: 1

Related Questions