gpt4 book ai didi

forms - Cakephp 验证后,所有表单字段都为空,并出现表单错误

转载 作者:行者123 更新时间:2023-12-02 11:23:12 26 4
gpt4 key购买 nike

我有问题..我尝试填写表单,然后单击提交按钮,然后它显示表单错误,但所有文本框字段都变为空白,并且可以显示表单错误。我希望它变得与验证之前相同的值。就像我不想在验证后清除/清空值一样。

我做了这样的事情:(在 View 中)

<div class="regform">
<div id="formleft">First Name<asterix>*</asterix></div>
<div id="formright"><?php echo $this->Form->input('First Name', array(
'name' => 'firstname',
'label'=> false
)); ?></div>
<div id="formerror"><?php echo $this->Form->error('Customer.firstname'); ?></div>
</div>

(模型中):

'firstname' => array(
'firstname_cant_be_empty' => array(
'rule' => 'notEmpty',
'message' => 'First Name must be filled.'
),
'firstname_must_be_alphabet' => array(
'rule' => '/^[a-z]{3,}$/i',
'message' => 'First Name is only letters. No numbers, Dotted, etc.'
)
)

(在 Controller 中):

if ($this->request->is('Post')) {

if ($this->Customer->save($this->request->data) && $this->Customer->validates()) {
//debug($this->request->data);
$this->Session->setFlash('good!');
//$this->redirect('/');
} else {
$this->Session->setFlash('Fill up form now!');
$this->data = $this->request->data;
}

}

最佳答案

您认为问题是:

    <div id="formright"><?php echo $this->Form->input('First Name', array(
'name' => 'firstname',
'label'=> false
)); ?></div>

具体:

$this->Form->input('First Name', array(

'name' => 'firstname',

这会导致生成表单元素,如下所示:

<input id="UserFirstname" type="text" maxlength="50" name="firstname">

您的表单输入应该是这样的:

    echo $this->Form->input('firstname', array(
'label'=> false
));

注意差异。这会导致表单元素生成为:

<input id="UserFirstname" type="text" maxlength="50" name="data[User][firstname]">

主要区别是name="data[User][firstname]"。这会导致数据以熟悉的数组格式 $this->request->data 发布,这也允许在表单错误时重新填充表单。

关于forms - Cakephp 验证后,所有表单字段都为空,并出现表单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com