2014-01-08 12 views
0

我有一個笨的形式,看起來有點像這樣的代碼:一種形式,崗位價值,然後重新本身就說明在笨沒有AJAX

<?php echo form_open_multipart('admin/updateperson', array("id" => "updateform")); ?> 
    <input placeholder="First name" name="fname" id="fname" value="<?= form_prep($person->fname) ?>" /> 
    <?= form_submit("save", "Save"); ?> 
<?php echo form_close(); ?> 

我希望能夠打保存,並有它會轉到一個控制器,該控制器會將上傳的數據保存到數據庫中,然後將我轉發給首先顯示錶單的控制器,這會將我返回到同一頁面,顯示更新的詳細信息。

我目前正在使用上傳控制器中的redirect調用時取得有限的成功,因此CodeIgniter只是將請求正常路由到原始Controller,該Controller從數據庫讀取並顯示錶單。這種作品。

但是,有一個錯誤:雖然它確實更新數據庫中的數據,它顯示我的原始形式,它顯示我以前的值!這些可以通過點擊F5或再次進入頁面來清除,但看起來很糟糕。

有沒有更好的方法來做到這一點?我會考慮使用set_form,但這只是爲驗證失敗而設計的,顯然?

+0

我以前做過類似的事情,它的工作原理。你確定$ person-> fname包含更新的數據,並且在更新數據庫之前你沒有以某種方式填充「$ person-> fname」(我知道這在你的情況下特別不可能,但值得一檢查) –

+0

嗯,不這麼認爲;可能通過'redirect'調用生存下來? –

+0

不...但也許你在重定向後做些什麼? –

回答

0

如果你需要存儲,你需要保持到在接下來的頁面中可見的所有數據表單提交後使用redirect

您可以在Session, Cookie, Url or HTML5 local and/or session storage

數據存儲爲你preferr :)

+0

即使我正在重定向的頁面有一個控制器,它應該讀取數據庫中的所有新信息? –

+0

對不起,並不意味着忘恩負義 - 感謝回覆! –