无法使用codeigniter表单验证

时间:2012-08-23 22:22:06

标签: php html forms validation codeigniter

所以我第一次尝试使用CI内置的form_validation“工具”来获得更多利用和研究,我似乎无法掌握它。我的视图设置正确,我的控制器似乎正确...我的问题是当我点击“提交”按钮它链接到新功能但不显示任何错误消息,无论我放入什么“名称”,“电子邮件”框。我希望它现在几乎可以在任何地方显示错误消息我只需要它来运行验证并显示错误消息。

控制器文件

public function intelli()
{
    $data["messages"] = "";
    $this->load->view('engage_header');
    $this->load->view('engage_nav');
    $this->load->view('intelli/content_intelli', $data);
    $this->load->view('engage_footer');

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

    $this->form_validation->set_rules('name_area', 'Name', 'required|alpha|xss_clean');
    $this->form_validation->set_rules('email_area', 'Email', 'required|valid_email|xss_clean');
    $this->form_validation->set_rules('phone_area', 'Phone', 'is_numeric|xss_clean');

    if ($this->form_validation->run() == FALSE) {
        $data["messages"] = "";
    } else {

        $data["messages"] = "The Email has successfully been sent";
    }

    $this->load->view('engage_header');
    $this->load->view('engage_nav');
    $this->load->view('intelli/content_intelli', $data);
    $this->load->view('engage_footer');
}

查看档案

<?php 
    $this->load->helper("form");
?>
<div class="request_demo">
    <div id="request_logo"></div>
    <div id="top_paragraph">
    Intelliship & HALO deliver immediate and quantifiable ROI.  Schedule a demo to learn how this transportation management software will positively impact your company&apos;s bottom-line profit.
    </div>
    <div id="entry_box">
    <?php  echo validation_errors();
    echo $messages;
    ?>
    <div id="request_form">
    <?php echo form_open('/index.php/site/intelli_email')?>
            <input id="name_area" type="text" placeholder="NAME" value="" required/><br/>
            <input id="email_area" type="text" placeholder="EMAIL" value="" required/><br/>
            <input id="phone_area" type="text" placeholder="PHONE" value=""><br/>
            <input id="submit_req" type="submit" value="SUBMIT">
        </form> 
    </div>
</div>

我知道代码现在很邋but,但我只是在寻找功能而非美。还注意到,因为我在控制器内部加载了帮助器('form'),所以在视图中加载它是多余的。

2 个答案:

答案 0 :(得分:2)

您只为表单元素指定了id。同时给他们name

<input id="name_area" name ="name_area" type="text" placeholder="NAME" value="" required/><br/>
<input id="email_area" name="email_area" type="text" placeholder="EMAIL" value="" required/><br/>
<input id="phone_area" name="phone_area" type="text" placeholder="PHONE" value=""><br/>

Codeigniter连接规则集,其中的元素基于名称,而不是id

答案 1 :(得分:0)

或者你可以这样给予

<input type="text" name="name_area" value="">
<?php echo form_error('name_area'); ?>

对于不同的字段,forn_error值的变化类似于email_area,phone_area .... 它显示与fieldname对应的错误(验证)。