每次使用codeigniter刷新页面时,控制器功能都会运行

时间:2017-09-27 09:39:14

标签: php jquery codeigniter

我只有一个按钮。当我点击按钮然后它在我的testcontroller中调用了函数demo。我必须调用名为createsection的视图页面,我也必须调用模型(用于发送正在工作的电子邮件)

现在点击按钮后我就在createsection页面上,但是当我刷新页面时,它又在控制器中调用了演示功能。

我只需要一次点击即可调用视图,并在后台调用模型。用户将获得视图页面,模型可以发送电子邮件。

的welcome.php

<?php echo form_open('testcontroller/demo'); ?>
<button name="clicked">click me</button>
<?php echo form_close(); ?>

的TestController /演示

class testcontroller extends CI_Controller {    
public function demo(){
    $email=$this->session->userdata('email');

    $this->load->view('createsection');

    $this->load->model('user_model');
    $id=$this->user_model->new_user($email);//passing email id in model to send the email

    //more code here..............
}
}

createsection(查看页面)

点击按钮后,用户将获得此页面。

   <?php echo form_open('testcontroller/confirm'); ?>
    <input type="text" name="code">
    <input type="submit" name="submit">
    <?php echo form_close(); ?>

3 个答案:

答案 0 :(得分:1)

嘿在您的控制器中进行此更改并运行testcontroller 它将打开welcome.php页面然后你可以找到确认表单点击它将起作用的提交按钮

 class testcontroller extends CI_Controller {    


        public function index() {
            $this->load->view('welcome');
        }

        public function demo() {
            $this->load->view('createsection');
        }
        public function confirm(){

            $email=$this->session->userdata('email');

            $this->load->model('user_model');
            $return = $this->user_model->new_user($email);         
        }
     }

答案 1 :(得分:1)

我认为,当您刷新多次执行的页面newuser模型函数时。您可以通过重定向来避免这些问题

class testcontroller extends CI_Controller {

    public function demo(){
        $email = $this->session->userdata('email');

        $this->load->model('user_model');
        // passing email id in model to send the email
        $id=$this->user_model->new_user($email); 

        redirect('testcontroller/demo_view/');
        //more code here..............
    }

    public function demo_view(){
        $this->load->view('createsection');
    }
}

答案 2 :(得分:0)

您的问题的简单答案是:

在UI事件上调用Controller内的函数,但是在加载页面时。

例如,如果您加载页面testcontroller/demo,则会执行demo()函数。如果您加载页面testcontroller/confirm,则会执行confirm()功能。当然,这些函数应该存在,否则你会得到404未找到的错误。