有人能说出为什么我的表单总是无法通过验证吗? 验证不会输出任何错误,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;">£</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');
感谢您的帮助
答案 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); ?>