Codeigniter:如何在多个视图文件中使用form_open()

时间:2017-01-17 20:53:33

标签: php codeigniter

我正在尝试让用户填写更多信息,因此我需要多个表单和页面。我制作了一个main_view.php左边有一个侧栏,上面有sub1.phpsub2.phpsub3.php的链接。在main_view.php的右半部分,它显示带有相应表单的子页面。 main_view.php的一部分如下所示:

<?php $view_path = "../../application/views/"?>

<span id="theFormChanger" > 
<?php               
?>
</span>

var currentPage = 0; 
var subviews = ['sub1.php', 'sub2.php','sub3.php'];

$('#sub1').click(function(){ 
           currentPage = 1;
           $('#theFormChanger').load(viewpath + subviews[currentPage]);
});

子视图页面的部分代码:

<?php echo form_open('v_controller'); ?>
<?php echo form_input(array( 'type' => 'text', 'id' => 'demail', 'name' =>'demail')); ?>
<?php echo form_input(array( 'type' => 'text', 'id' => 'dname', 'name' => 'dname')); ?>
<?php echo form_submit(array('id' => 'submit', 'value' => 'Submit')); ?>
<?php echo form_close(); ?>

对于../application/controllers/,有一个v_controller.php:     

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

public function index()
{
    $this->load->helper('form');
    $this->load->view('sub1');
    $data = array(
        'User_Name' => $this->input->post('dname'),
        'User_Email' => $this->input->post('demail'));
}?>

每当我转到localhost:8000/main/main_view时,左边部分都很好,但右边部分说"Fatal error: Call to undefined function form_open() in main_view.php"

我四处搜寻但找不到答案。我确保在autoload.php中加载了所有内容。

这是路由问题吗?我不能直接去查看文件?请帮我。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以将视图加载到视图文件中,如此

应用程序&gt;意见&gt;如default.php

<?php $this->load->view('template/common/header');?>
<?php $this->load->view('template/common/navbar');?>
<?php $this->load->view('template/' . $page);?>
<?php $this->load->view('template/common/footer');?>

然后在控制器上

<?php

class Example extends CI_Controller {

    public function index() {
        $data['page'] = 'common/example';
        $this->load->view('default', $data);
    }
}

答案 1 :(得分:-1)

您需要在视图页面的open方法中创建NameOfController / NameOfMethod。

用这个代替我们的代码,它会对你有用。

extract text plugin