将视图与控制器链接以从模型类

时间:2018-04-15 01:30:14

标签: php codeigniter codeigniter-3

我一直在尝试做一些应该非常简单的事情,但不知何故不是在我一直在努力的这个特定项目中。

这是一个简单的CodeIgniter 3项目。我只想创建一个非常简单的页面,让我选择一个包含多个坐标的.txt文件,并将其添加到我的数据库中。

模型的代码已经完成了。我正在尝试链接我的视图,以便在选择.txt文件后单击提交按钮时,它将调用我的控制器中的特定函数,该函数将依次调用我的模型的函数,该函数应该添加所述存入我的数据库。

以下是视图的代码(application / views / pageTEST.php):

<HTML>
  <form method = "post">

    <label for = "zone">Zone</label>
    choose zone : <input type = "file" id = "fA" name = "zone" accept = "file_extension/.txt">

    <input type = "submit" id = "btn" name = "loader">

  </form>
<HTML>

控制器的代码(application / controllers / modelController.php):

class modelController extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('loader');
        $this->load->helper('url_helper');
    }

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

    public function load()
    {
        $this->load->helper('form');
        $this->load->library('form_validation');
        $this->form_validation->set_rules('zone', 'Zone', 'required');

        if($this->form_validation->run() == = FALSE)
        {
            $this->load->view('error');
        }
        else
        {
            $this->loader->loadZone($this->input->post('zone'));
            //this is supposed to load the .txt file i chose in the form and add it into the DB
        }
    }
}

我不需要显示我的模型的代码,因为它不是问题。我需要知道的是在点击提交按钮后如何调用modelController->load()

到目前为止,我还无法将它们联系起来。我尝试使用指向某个测试页的简单链接替换控制器中load()方法的代码,但我的视图无法访问该函数。我的代码中缺少什么?

1 个答案:

答案 0 :(得分:0)

您的表单应如下声明:

<form action="<?php echo site_url('modelController/load'); ?> enctype="multipart/form-data">

然后您可以通过文件数组访问文件zone

$_FILES['zone']

您可以通过$_FILES["zone"]["tmp_name"]访问它($this->loader->loadZone($_FILES["zone"]["tmp_name"]);可能有效),如果不是,您需要将文件移动到可读位置:

https://github.com/dyne/domain-list/blob/master/data/google

您也可以使用CI的上传库。