CakePHP在表单验证错误时重新填充单选按钮

时间:2011-12-21 08:23:41

标签: validation cakephp radio-button

我认为应该是一个简单的问题,但我无法在任何地方找到答案(或者它已经很晚了)。

我在页面上使用了很多单选按钮。起初我没有为单选按钮指定“值”。但是,在提交表单时,我收到一条mySQL错误,指出该列不能为空。

然后我读了CakePHP Unfilled radio button changed to an unwanted value on submit我在那里学到了单选按钮永远不应该是空白的。很公平,所以我为他们设置了默认的“值”=“-1”。我的问题是,如果页面上的表单验证失败,则所有单选按钮都会设置回默认值,并且不会重新填充用户输入的内容。当然,如果用户在页面上犯了一个错误,我不希望他再次修复所有的单选按钮。

在表单验证错误的第一种方法(我没有指定“值”)时,它会自动将单选按钮重新填充到用户输入的内容。

有关如何在验证失败时让单选按钮重新填充到用户所选值的任何建议吗?

仅供参考,我使用的其中一个单选按钮的代码如下:

  

$ radioForm = $ this-> Form-> radio('Review。'。$ fieldName,array(“1”=>   “1”,“2”=>“2”,“3”=>“3”,“4”=>“4”,“5”=>“5   “,” - 1“=>”N / A“),数组('legend'=>'','value'=>' - 1'));   echo $ radioForm;

1 个答案:

答案 0 :(得分:0)

试试这个:

echo $this->Form->radio('Review.' . $fieldName ,array("1"=> "1","2"=>"2","3"=>"3","4"=>"4","5"=>"5", ""=>"N/A"),array('legend'=>'', 'value'=> $modelName['Review'][$fieldName]));

不要把'value'=> '-1',因为它总是设置这个不是你想要的值,而是放入所选的值

如果您在Review模型中,则可以在字段名称中跳过模型名称,但在设置值时不能跳过

echo $this->Form->radio($fieldName ,array("1"=> "1","2"=>"2","3"=>"3","4"=>"4","5"=>"5", ""=>"N/A"),array('legend'=>'', 'value'=> $modelName['Review'][$fieldName]));