Codeigniter如何使用form_open帮助函数设置表单操作URL

时间:2015-05-10 05:32:29

标签: php html twitter-bootstrap codeigniter

我正在使用Codeigniter和Bootstrap。这是我的观看代码:

<?php echo form_open('con_login/loginUser'); ?>
    <div class="bs-example">
        <div class="col-md-2">
            <label class="sr-only" for="username">Username</label>
            <input type="text" class="form-control" name="username" placeholder="Username" value="">
        </div>
        <div class="col-md-2">
            <label class="sr-only" for="password">Password</label>
            <input type="password" class="form-control" name="password" placeholder="Password" value="">
        </div>
        <button type="submit" class="btn btn-default" name="login" value="login">Sign in</button>
    </div>
    <?php echo form_close(); ?> 

控制器中被叫函数的代码是:

public function loginUser() {
    $username = $this->mod_login->getUsername();

    $inUser = $this->input->post('username');
    $inPass = $this->input->post('password');

    if (in_array($inUser, $username)) {
        $password = $this->mod_login->getPassword($inUser);
        if ($password === $inPass) {
            $this->load->view('Alt_home');
        }
    }
}

但是我收到了错误

  

在此服务器上找不到请求的URL / SEP / con_login / loginUser。

这是为什么?与路由有什么关系吗?

4 个答案:

答案 0 :(得分:2)

您需要将完整的url传递给form_open函数,如此

<form action='http://localhost/folder/controller/method'>

有两种方法可以做到这一点

1:使用base_url()

步骤1:打开application \ config文件夹

下的config.php文件

第2步:将$ config [&#39; base_url&#39;]的值设置为您的网站路径

$config['base_url'] = "http://localhost/foldername/index.php";

如何使用

在控制器中加载url助手

$this->load->helper('url);

现在在视图文件中,您可以像这样使用

 echo form_open(base_url()."/controllername/mehod");

2:手动

form_open("http://localhost/foldername/index.php/controller/method");

答案 1 :(得分:1)

您需要将完整的url传递给form_open函数,如此

<form action='http://localhost/folder/controller/method'>

有两种方法可以做到这一点

1:使用base_url()

步骤1:打开application \ config文件夹

下的config.php文件

第2步:将$config['base_url']的值设置为您的网站路径

  $config['base_url'] = "http://localhost/foldername/index.php";

如何使用

在控制器中加载url助手

 $this->load->helper('url);

现在在视图文件中,您可以像这样使用

  echo form_open(base_url()."/controllername/mehod");

2:手动

   form_open("http://localhost/foldername/index.php/controller/method");

答案 2 :(得分:0)

你在控制器中加载了帮助器(url,form)吗? 如果不 那么你应该在你的控制器中做一个加载功能 就像这样

public function load(){  
$this->load->helper('url');
$this->load->helper('form');
}

并在函数中使用它

    public function loginUser() {
    $this->load();
    $username = $this->mod_login->getUsername();

    $inUser = $this->input->post('username');
    $inPass = $this->input->post('password');

    if (in_array($inUser, $username)) {
        $password = $this->mod_login->getPassword($inUser);
        if ($password === $inPass) {
            $this->load->view('Alt_home');
        }
    }
}

答案 3 :(得分:0)

  

你可以像这样使用,它适用于我..让我们看看它是否适合你。   如果您不希望从form_open()函数的第二个参数中删除属性。

<?php $attributes = array('class' => 'myformclass', 'id' => 'myformid','name' => 'myformname');
            echo form_open(base_url("con_login/loginUser"),$attributes);?>
  

HTML HERE

<?php echo form_close();?>
  

谢谢