2012-06-11 92 views
3

嘿傢伙希望你能幫助我。codeigniter顯示form_open

即時通訊試圖學習codeigniter和由於某種原因,我不能做最簡單的事情。

基本上即時通訊在登錄頁面上創建一個窗體。但即時得到

致命錯誤:調用未定義功能VALIDATION_ERRORS()在A:\工作\笨\ CI \程序\意見\ \頁第5行

的login.php,如果我註釋掉VALIDATION_ERRORS行,我得到

致命錯誤:調用以A form_open()未定義功能:\工作\笨\ CI \程序\意見\ \網頁上的login.php線5 ...

錯誤消息

(!) Fatal error: Call to undefined function validation_errors() in A:\work\codeigniter\ci\application\views\pages\login.php on line 3 
Call Stack 
# Time Memory Function Location 
1 0.0004 697328 {main}() ..\index.php:0 
2 0.0010 790176 require_once('A:\work\codeigniter\ci\system\core\CodeIgniter.php') ..\index.php:202 
3 0.0135 2313080 call_user_func_array () ..\CodeIgniter.php:359 
4 0.0135 2313160 Pages->view() ..\CodeIgniter.php:359 
5 0.0135 2313288 CI_Loader->view() ..\pages.php:9 
6 0.0135 2314232 CI_Loader->_ci_load() ..\Loader.php:419 
7 0.0138 2363392 include('A:\work\codeigniter\ci\application\views\pages\login.php') ..\Loader.php:833 

這是我的代碼。

的login.php位於視圖\頁

<?php echo validation_errors(); ?> 

<?php echo form_open('user/login') ?> 

    <label for="Id"> User Id</label> 
    <input type="input" name="Id" /> <br/> 

    <label for="Password">User Password</label> 
    <input type="input" name="Password" /> 
    <br/> 

    <input type="submit" name="submit" value="log in" /> 

</form> 

user.php的位於控制器\/

<?php 
    class User extends CI_controller{ 
    public function login() 
    { 
     $this->load->helper('form'); 
     $this->load->library('form_validation'); 

     //i have a file views/pages/main.php which just says "this is main" 
     $this->load->view('pages/main'); 
    } 
    } 

pages.php位於控制器

<?php 

    class Pages extends CI_Controller{ 
    public function view($page){ 
     if(!isset($page)||!file_exists("application/views/pages/$page.php")){ 
     show_404(); 
     } 

     $this->load->view("pages/$page"); 


    } 
    } 

routes.php文件位於config/

$route['default_controller'] = "pages/view"; 
$route['(:any)']="pages/view/$1"; 
$route['404_override'] = ''; 

這是我認爲會發生的事情,如果我錯了,請糾正我。 form_open('user/login')使html表單元素的「action」指向位於控制器中的「user」類的方法「login」。

另外,我用Google搜索了很多,幾乎所有人都認爲是得到這個錯誤是得到它,因爲他們說好的做

$this->load->helper('form'); 
$this->load->library('form_validation'); 

另外,我不明白在form_open點串的位置爲「 action「屬性,爲什麼需要在那裏加載表單助手和表單驗證庫?可以解釋一下這個流程請.. ..真的很感謝..謝謝..

+0

即使加載了表單助手和form_validation庫之後,前面提到的錯誤是否仍然存在? – vandershraaf

回答

9

基本的問題是,這是調用視圖與形式的控制器應包含

$this->load->helper('form'); 
$this->load->library('form_validation'); 

,而不是控制器,它被稱爲通過表單動作

3

嘗試加載表單助手在您的文件config文件夾內。

這將是一個很好的做法:

$autoload['helper'] = array('url','text','form'); 
+0

哦,亞忘了這麼做。但仍然不工作:( –

+0

你現在得到什麼錯誤? – scaryguy

+0

同樣的錯誤。在主帖子上發佈錯誤消息。 –