actionCreate:
try
{
$this->saveModel($model);
}
catch(Exception $e) {
$this->showError($e);
}
function showError:
function showError(Exception $e)
{
if($e->getCode()==23000)
$message = "This operation is not permitted because it exists in a record.";
else
$message = "Invalid operation.";
throw new CHttpException($e->getCode(), $message);
}
如果发现错误,则会重定向到显示错误的窗口。如何在警报消息中显示错误而不是重定向,而不从文本框中删除用户输入的值?
答案 0 :(得分:0)
尝试在提交时将用户输入的值存储在变量中。 它看起来像这样:
<form class="signup_form" name="signup_form" method="post">
<dl>
<dt>
<label for='username'>Username:</label>
</dt>
<dd>
<input type='text' id= 'username' name='username' placeholder='Username' maxlength='15' value="<?php echo $input->value('username');?>"/>
</dd><span id='error-msg'><?php echo $input->error_msg('username');?></span>
</dl>
</form>
注意&#34;值&#34;属性从$ input-&gt;值获取其值(&#39;用户名&#39;)我已设置为接收用户在表单提交时输入的值:
$this->input[$pointer]['value'] = $_POST['username'];
请注意: $ input是我创建的用于处理输入验证的Input类的实例。你可以用另一种方式做到。我们的想法是在表单验证时将值存储在变量中,并在加载页面时再次加载它。