@MESSIAH 我相信这个人使用 yii。mysql?真的吗?它已经被弃用了。
SELECT 1 FROM table WHERE field=$parameter
这是唯一检查查询的样子。请不要使用这个丑陋的代码。
例如,这就是您的表单 init 的外观:
<?php $form = $this->beginWidget('CActiveForm', array(
'id' => 'feeds-form',
'enableClientValidation' => true,
'enableAjaxValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,))); ?>
在你的控制器中使用这样的东西:
if(Yii::app()->request->isAjaxRequest)
{
$error=CActiveForm::validate($model);
if($error!='[]'){
echo $error;
Yii::app()->end();
$flag=false;
}
}
它在您的情况下执行 ajax 验证功能。您可以将它添加到一些新功能或在您的操作开始时添加。要执行保存,请使用以下内容:
if(isset($_POST['Feeds'])&& ($_POST['ajax']!='feeds-form'))
//$model->save() or do whatever you want here
如果您需要完全控制您的错误等等,请使用 ajaxSubmitButton:
<?php echo CHtml::ajaxSubmitButton($model->isNewRecord ? 'Create' : 'Save', Yii::app()->request->url, array(
'dataType' => 'json',
'type' => 'post',
'success' =>
'js:function (data) {
if(!$.isEmptyObject(data)) {
$.each(data, function(key, val) {//adding errors to error div wrapper here
$("#feeds-form #"+key+"_em_").text(val+" ");
$("#feeds-form #"+key+"_em_").parent(".error_wrapter").addClass("error");
$("#feeds-form #"+key+"_em_").css(\'display\',\'block\');
});
};
if(data.status=="success"){
hideAllMessages();
setTimeout(function(){
$(\'.\'+\'success_not\').fadeOut(700);
},6000);
$(\'.\'+\'success_not\').fadeIn({top:"0", left:"0"}, 700);
}
else {
hideAllMessages();
setTimeout(function(){$(\'.\'+\'fail\').fadeOut(700);},6000);
$(\'.\'+\'fail\').fadeIn({top:"0", left:"0"}, 700);
};
}',
), array(
'id' => 'feeds-form_submit_' . rand(1, 255), // Need a unique id or they start to conflict with more than one load.
));?>
在您的模型中,您需要为您的标题设置规则:
public function rules()
{
return array(
array('title', 'unique'),
..............
);
}
现在它完成了。
如果您不了解某些内容,这里是提示。
http://www.yiiframework.com/forum/index.php/topic/37075-form-validation-with-ajaxsubmitbutton/