使用CodeIgniter form_validation清空POST结果

时间:2012-02-08 14:02:39

标签: php codeigniter

有人能说出为什么我的表单总是无法通过验证吗? 验证不会输出任何错误,POST数组始终为空。 建议我,它被提交到错误的地方但事实并非如此。

    <form action="https://www.mydomain.com/account/withdraw" method="post" accept-charset="utf-8">      <fieldset class="six-col">
        <h3>What amount?</h3>
        <span style="font-size:1.3em;position:relative;display:inline;">&pound;</span>
        <input id="amount" type="text" placeholder="1.00" style="font-size:1.3em;width:115px;background-color: transparent;color:white;"/>

    </fieldset>
    <fieldset class="six-col">
        <h3>Charges</h3>
        <span id="charges" style="font-size:1.3em;"></span>
    </fieldset>
    <fieldset class="six-col">
        <h3>You leave with</h3>
        <span id="charges2" style="font-size:1.3em;"></span>
    </fieldset>
    <fieldset class="six-col end-col">
        <input type="submit" id="submit" class="btn" value="Withdraw" style="width:125px;position:absolute;bottom:0" />
    </fieldset>
</form>

这是控制器

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

    $this->form_validation->set_rules('amount', 'Amount', 'required|xss_clean|trim|numeric|max_length[5]');

    if ($this->form_validation->run() == FALSE)
    {           
        $this->load->helper(array('form', 'url'));
        $data['credit'] = $this->account_m->get_credit();
        $this->load->view('account/withdraw', $data);
    }
    else
    {
        // The withdraw code
    }
    $this->load->view('footer');

感谢您的帮助

1 个答案:

答案 0 :(得分:5)

您没有在输入中设置名称.. 它应该是:<input name="amount" id="amount" type="text" placeholder="1.00" style="font-size:1.3em;width:115px;background-color: transparent;color:white;"/>

确保你真的得到了回报。

如果可以测试..在form_validation之前回显post var,如下所示:

<?php echo $this->input->post('amount'); ?>

如果您没有获得某个值,那么请使用POST代替post

如果你得到一个值,那么它的规则。一种可能性是numeric规则,尝试整数。如果您使用的是0.00美元,请尝试is_natural或尝试decimal

另外,使用codeigniter的探查器类进行开发.. http://codeigniter.com/user_guide/general/profiling.html

<?php $this->output->enable_profiler(TRUE); ?>