CodeIgniter按钮不触发动作

时间:2014-11-28 09:33:09

标签: php codeigniter

我一直在搜索网站上的各种问题而没有运气。据我所知,最接近答案的是通过以下问题:CodeIgniter's form action is not working properly

问题是,当我按下登录按钮时没有任何反应,因此不会触发HTML表单中的action属性。我也看过我的路线而没有运气。

HTML代码位于我的视图文件夹中,如下所示:

<div class="container">
    <div class="row">
        <div class="col-md-4 col-md-offset-4">
            <div class="login-panel panel panel-default">
                <div class="panel-body">
                    <form role="form" method="post" action="<?php echo base_url() ?>index.php/login">
                        <fieldset>
                            <div class="form-group">
                                <input class="form-control" placeholder="Username" name="username" type="username" required>
                            </div>
                            <div class="form-group">
                                <input class="form-control" placeholder="Password" name="password" type="password" required>
                            </div>
                                <a type="submit" id="login-button" style="navy" class="btn btn-lg btn-success btn-block">Login</a>
                        </fieldset>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

我的控制器名为pages.php,它的功能是,登录如下:

public function login()
{
    $this->load->helper('form');
    $username = $this->input->post('username');
    $password = $this->input->post('password');

    if ($username != false && $password != false)
    {
        $loginDetails = $this->pages_model->retrieveLoginDetails($username,  $password);

        if ($loginDetails != false)
        {
            if ($loginDetails['username'] == $username && $loginDetails['password'] == $password)
            {
                $this->load->view ('home');
            }
            else
            {
                $this->view();
                echo "details dont match";
            }
        }
        else
        {
            $this->view();
            echo "nothing received from db";
        }
    }
    else
    {
        $this->view();
        echo "no details entered";
    }
}

我只关心去主页。通过调用视图函数,我只是返回登录屏幕。一旦我能够开始工作,我会适当地调整命名。 pages模型包含以下函数以从数据库中检索登录数据:

public function retrieveLoginDetails ($username, $password)
{
    $loginDetails['username'] = $this->db->get_where('user_details', $username);

    if (! empty ($loginDetails['username']))
    {
        $loginDetails['password'] = $this->db->get_where('user_details', $password);
        return $loginDetails;
    }

    return false;
}

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:1)

使用

<input type="submit" value="Login" class="btn btn-lg btn-success btn-block" />

取代

<a type="submit" id="login-button" style="navy" class="btn btn-lg btn-success btn-block">Login</a>

了解更多信息请查看:http://www.w3schools.com/tags/tag_a.asp

答案 1 :(得分:0)

我不知道直接回复,但是你确定了你的服务器究竟返回了什么,以及数据发送到哪里。 LiteBug FTW;)

如果没有发送任何数据,您应该检查您的.js文件。