如何从视图中调用的CodeIgniter控制器功能?(How to call controller

2019-06-26 13:22发布

随着笨,我有一个控制器,如下:

<?php if(!defined ('BASEPATH')) exit('not found basepath');

class **myController** extends CI_Controller{

    function __constructor(){
        parent::__constructor();
    }
    public function index(){
        $this->load->view('myview');
    }
    **public function myFn()**{
        echo "my controller is called"; 
    }
}

?>

和视图是在以下内容:

<form action="<?php echo base_url();?>myController/myFn" method="post" name="myform">
<input type="submit" name="submit" value="submit"/>
</form>

问题是,当我运行通过去点击处通过如下错误提交米比划后到本地主机的看法!

所请求的URL /笨/ myController的/ myFn在此服务器上找到。

但是当我把**http://localhost/CodeIgniter/index.php/myController/myFn**我的观点的正确的输出

Answer 1:

当你运行该视图

<form action="<?php echo base_url();?>myController/myFn" method="post" name="myform">
<input type="submit" name="submit" value="submit"/>
</form>

使用检查元素,以查看是否在窗体标签的作用是一样的

**http://localhost/CodeIgniter/index.php/myController/myFn**


Answer 2:

查看侧

 <form method="post" action="<?php echo base_url();?>index.php?controlerfile/test" class="form">
Message: <input type="text" name="message">
<input type="submit" value="submit">

<div>
You have entered: 
<?php echo $message; ?>
</div>

controllerfile

function test()
{

    $data['message']= $this->input->post('message');
            //$this->output->append_output($message); 

    $this->load->view('backend/test',$data);


}

希望对你有帮助..



Answer 3:

如果你想呼叫控制器功能类似这样的/CodeIgniter/myController/myFn然后,您可以选择使用.htaccess文件删除index.php文件。 首先你改变config.php文件是这样的。

//  Remove index.php

$config['index_page'] = ""

然后,创建.htaccess文件,并将此代码复制到该文件。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

然后,把里面codeignator项目文件夹,这个.htaccess文件。

要引用看到此链接: - 在这里输入链接的描述



Answer 4:

我想你忘了装载URL帮手

function test()
{

    $this->load->helper('url');
    $data['message']= $this->input->post('message');
    $this->load->view('backend/test',$data);

}

这可能帮助您



Answer 5:

在你的控制器直接删除“**”。

<?php if(!defined ('BASEPATH')) exit('not found basepath');

class myController extends CI_Controller{

    function __constructor(){
        parent::__constructor();
    }

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

    public function myFn(){
    echo "my controller is called"; 
    }
}
?>

而在你看来试试:

<?php echo form_open('myController/myFn'); ?>
<?php echo form_submit('submit','SUBMIT'); ?>


文章来源: How to call controller function from view in codeigniter?