Forms CodeIgniter-两张表格,一页
我在理解MVC的概念和一次显示多个表单方面遇到了一个基本问题。我尝试过各种方法,但我仍然被卡住了——这是因为我认为我没有正确理解CI和MVC 我尝试对两种不同的表单使用两种不同的视图。没用。我尝试在我的控制器中每个窗体使用一个函数。那也没用。我不知道该怎么办 我应该这样做Forms CodeIgniter-两张表格,一页,forms,codeigniter,controller,Forms,Codeigniter,Controller,我在理解MVC的概念和一次显示多个表单方面遇到了一个基本问题。我尝试过各种方法,但我仍然被卡住了——这是因为我认为我没有正确理解CI和MVC 我尝试对两种不同的表单使用两种不同的视图。没用。我尝试在我的控制器中每个窗体使用一个函数。那也没用。我不知道该怎么办 我应该这样做 创建一个控制器并在其中包含index()函数 在此索引()中为每个表单构建我的表单元素 创建一个显示这两个表单的视图,并从index()中调用它 使用form_open将提交操作定向到另一个函数-调用它validate() 验
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
}
这里有一个视图(add_new_file.php)
上载文件/出版物
下面是另一个(add_new_folder.php)
div id=“container”>
添加新文件夹
新文件夹名称:
我希望这有助于回答这个问题
基本上,我可以让第一部分工作-添加文件夹-但我不能让添加文件工作。这是因为如果($This->form\u validation->run()==FALSE)总是返回FALSE。我认为它可能在另一个表单中查看表单元素——这是不应该的。我错过了什么
我应该这样做1.创建一个控制器并在其中包含一个index()函数。
[为了便于交谈,让我们呼叫此控制器
用户
thx-ed]
当然。那很酷。您还可以在该控制器中使用名为edit
、或banana
或其他功能;两种方法都有效。仅使用索引
方法(函数),url可能看起来像http://example.com/index.php/users
而如果向控制器添加另一种方法,如banana
,则url可能看起来像http://example.com/index.php/users/banana
二,。在此索引()中为每个表单构建我的表单元素
通常,表单元素不会在控制器中创建。这就是MVC中的V的作用所在——您查看的内容进入视图
因此,人们可能会这样做
// Users Controller
class Users extends CI_Controller{
function index(){
//index method
}
function banana(){
$this->load->view('banana_view');
}
}
然后在application/views/banana_view.php
中创建表单。当您访问http://example.com/users/banana
,您将看到在banana\u view.php
中创建的表单
三,。创建一个显示这两个表单的视图,并从index()中调用它
当然,那很好。但是请记住,每个
内部都需要自己的
,因此需要某个地方来发送每个表单数据。这是操作=”“
。您可以省去它,但请注意,它会将表单发送到您当前所在的任何页面(在我们这里,http://example.com/index.php/users/banana
),因此必须在banana()
方法中有一些内容来处理表单数据。但是,通常会通过form\u open()
进行设置。类似于form_-open('index.php/users/eat_-banana')代码>将生成
我应该这样做
1.创建一个控制器并在其中包含一个index()函数。
[为了便于交谈,让我们呼叫此控制器用户
thx-ed]
当然。那很酷。您还可以在该控制器中使用名为edit
、或banana
或其他功能;两种方法都有效。仅使用索引
方法(函数),url可能看起来像http://example.com/index.php/users
而如果向控制器添加另一种方法,如banana
,则url可能看起来像http://example.com/index.php/users/banana
二,。在此索引()中为每个表单构建我的表单元素
通常,表单元素不会在控制器中创建。这就是MVC中的V的作用所在——您查看的内容进入视图
因此,人们可能会这样做
// Users Controller
class Users extends CI_Controller{
function index(){
//index method
}
function banana(){
$this->load->view('banana_view');
}
}
然后在application/views/banana_view.php
中创建表单。当您访问http://example.com/users/banana
,您将看到在banana\u view.php
中创建的表单
三,。创建一个显示这两个表单的视图,并从index()中调用它
当然,那很好。但是请记住,每个
内部都需要自己的
,因此需要某个地方来发送每个表单数据。这是操作=”“
。您可以省去它,但请注意,它会将表单发送到您当前所在的任何页面(在我们这里,http://example.com/index.php/users/banana
),因此必须在banana()
方法中有一些内容来处理表单数据。但是,通常会通过form\u open()
进行设置。类似于form_-open('index.php/users/eat_-banana')当你说它不工作时,code>将生成——以什么方式?表单是否显示不正确,是否存在一些错误,或者只是没有达到预期效果?您可以随意加载视图-一个视图、多个视图等。您是对的,在控制器中,您可能希望每个窗体的操作都有一个函数。为了你最大的
div id="container">
<h1>Add A New Folder</h1>
<div id="body">
<?php echo validation_errors(); ?>
<?php echo form_open('admin/add_folder');?>
<?php echo $folder_list_add; ?>
New Folder Name: <input type="text" name="new_folder_name">
<input type="submit" value="upload" />
</form>
</div>
// Users Controller
class Users extends CI_Controller{
function index(){
//index method
}
function banana(){
$this->load->view('banana_view');
}
}
class Users extends CI_Controller{
function index(){
//index method
}
function banana(){
$this->load->view('banana_view');
}
// assuming form_open('index.php/users/eat_banana'); in banana_view
function eat_banana(){
//make sure that this is a POST
if($this->input->post()){
// do things with the data
// typically it gets saved to a database
// via a model (the M in MVC)
// http://ellislab.com/codeigniter/user-guide/general/models.html
if($saved_to_db){
// set message to send to the view
$data['message'] = "Everything went OK";
}else{
$data['message'] = "but who was database? data didn't save :(";
}
// load the view and send the data
$this->load->view('eat_banana', $data);
}
}
<!DOCTYPE html>
<html>
<head></head>
<body>
<div>
<b>Form submitted.</b><br />
The message is: <?php echo $message; ?>
</div>
</html>
class Users extends CI_Controller{
function index(){
//index method
}
function banana(){
$this->load->view('banana_view');
}
// assuming form_open('index.php/users/eat_banana'); in banana_view
function eat_banana(){
//make sure that this is a POST
if($this->input->post()){
// do things with the data
if($saved_to_db){
// just send them to the homepage
redirect('/');
}else{
// send them back to the form
redirect('index.php/users/banana');
}
}
}