可能是某些顯而易見的事情,我無法看到它出錯的地方。也許它是我誤解的邏輯。我搜索了很多,我發現的一切只處理導航問題選擇適當的選項卡。使用引導選項卡視圖進行Codeigniter表單驗證
我在平臺codeigniter v2.2.3上使用PHP開發了一個相當大的站點。它使用FORMS,FORM驗證和一些jQuery(主要用於可視化)。所以我知道模型,控制器,查看系統是如何工作的,即使表單驗證和錯誤顯示,補充形式等
問題:我有一個後端,其中一些控制器提供的數據我在幾個主題,並讓我使用簡單的PHP/CI表單進行更改。我想將這些現在從交換機/一個頁面啓動的各種控制器與TABS集成到一個頁面中。所以我可以使用標籤視圖。主要是一個選項卡鏈接到一個控制器。
我可以顯示選項卡,用控制器/視圖中的數據填充它。我還可以在選中時在選項卡上顯示錶單。 但是:當我提交表單時,我的視圖脫離了TABBED視圖。發生錯誤時也是如此。我不想將所有驗證邏輯重新編碼到jquery中。該網站太大了。
問:我期待如何正確顯示重新形式當有表單驗證錯誤...
下方的「邏輯」。 https://bitbucket.org/ALchEmiXt/ci-tab-test
構建標籤:完整的代碼(一個孤立的用戶名,電子郵件爲例)可以在我的公開到位桶回購找到
初始控制器TESTTAB:
<?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'); ?>
形式
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>
感謝您的指點。似乎我很想念你最後一句話怎麼辦。我一直在窗體上的重載循環中結束,或者顯示兩次相同的tabset。如果我檢查testform控制器中的錯誤,以顯示視圖或重定向它顯示正確,但與我的問題相同的問題。想法? – ALchEmiXt