【发布时间】:2015-11-14 23:33:24
【问题描述】:
可能很明显,我看不到哪里出了问题。也许这是我误解的逻辑。我搜索了很多,我发现的所有内容都只涉及选择正确标签的导航问题。
我在平台 codeigniter v2.2.3 上使用 PHP 开发了一个相当大的网站。它使用表格、表格验证和偶尔的一些 jQuery(主要用于可视化)。所以我知道模型、控制器、视图系统是如何工作的,甚至是表单验证和错误显示、重新填写表单等。
问题:我有一个后端,其中一些控制器为我提供有关多个主题的数据,并允许我使用简单的 PHP/CI 表单进行更改。我想将这些现在从交换机/一页启动的各种控制器集成到带有 TABS 的一页中。所以我可以使用选项卡式视图。主要是一个标签链接到一个控制器。
我可以显示选项卡,用控制器/视图中的数据填充它。选择时,我还可以在选项卡上显示表单。 但是:当我提交表单时,我的视图脱离了 TABBED 视图。产生错误时也是如此。我不想将所有验证逻辑重新编码到 jquery。网站太大了。
问题:我正在寻找在出现表单验证错误时如何正确显示重新打开的表单...
在“逻辑”之下。完整的代码(一个独立的用户名、电子邮件示例)可以在我的公共 bitbucket 存储库中找到:https://bitbucket.org/ALchEmiXt/ci-tab-test
构建标签:
初始控制器测试选项卡:
<?php
class Testtab extends CI_Controller {
function index()
{
$this->data['welcome'] = 'Welcome tester!';
$this->load->view( 'testtab_view', $this->data );
}
}
?>
初始视图testtab_view:(页脚和页眉加载所有默认通用jquery,引导逻辑)
<?php $this->load->view('header_testform'); ?>
<ul class="nav nav-tabs" id="uvpbTabs">
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
<li><a data-toggle="tab" href="#form1" data-tab-url="testform">formtesting</a></li>
<li><a data-toggle="tab" href="#stats">Stats</a></li>
<li><a data-toggle="tab" href="#admin">Admin</a></li>
</ul>
<!-- The data and views come here -->
<div class="tab-content" id="all-tabs">
<div id="home" class="tab-pane fade in active"><h3><?php echo $welcome ?></h3></div>
<div id="form1" class="tab-pane fade"></div>
<div id="stats" class="tab-pane fade"><h3>Stats of the pages</h3></div>
<div id="admin" class="tab-pane fade"><h3>Admin stuff</h3></div>
</div>
<?php $this->load->view('footer_testform'); ?>
表格
测试表单控制器:
<?php
class Testform extends CI_Controller {
function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
if ($this->form_validation->run() == FALSE) {
$this->load->view('testtabform_view');
} else {
$this->load->view('testform_succes');
}
}
}
?>
testtabform_view
<div id="formcontainer">
<?php echo validation_errors(); ?>
<?php echo form_open('testform'); ?>
<h3>TestTabForm_view</h3>
<h5>Username</h5>
<input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</div>
【问题讨论】:
标签: forms twitter-bootstrap codeigniter validation