Yii框架:AJAX表单?
好的,我需要一些看起来很简单的帮助,但我就是想不出来 我有一个用Yii编写的页面,我试图在其中嵌入一个AJAX表单。让我们调用页面A。表单接受单个值,如果可以的话,需要验证并将其存储到DB中 到目前为止,我已经得出以下结论: 表单位于视图_form.php中,其中包含一个CActiveForm和一个ajaxSubmitButton,如下所示:Yii框架:AJAX表单?,yii,ajaxform,Yii,Ajaxform,好的,我需要一些看起来很简单的帮助,但我就是想不出来 我有一个用Yii编写的页面,我试图在其中嵌入一个AJAX表单。让我们调用页面A。表单接受单个值,如果可以的话,需要验证并将其存储到DB中 到目前为止,我已经得出以下结论: 表单位于视图_form.php中,其中包含一个CActiveForm和一个ajaxSubmitButton,如下所示: <?php echo CHtml::ajaxSubmitButton('submit', $this->createUrl('/site/so
<?php echo CHtml::ajaxSubmitButton('submit', $this->createUrl('/site/something'), array('update'=>'#targetdiv'));?>
在Firebug中,我确实看到当遇到错误时,响应会再次包含整个部分呈现形式。但是,targetdiv未使用带有错误消息的更新表单进行更新
我觉得我在actionController中做错了什么,但我不知道是什么。如果我能看到AJAX提交表单的完整示例,那将非常有帮助
谢谢 尝试将“数据类型”添加到ajaxSubmitButton属性中,如:
array('type' =>'POST',
'update' => '#targetdiv',
'dataType' => 'html',
),
您可能需要尝试传回一些基本文本以首先测试它——如果您只是尝试显示错误消息,则可能不需要重新呈现表单。$model->getErrors()
将为您提供所有属性的所有错误
然后将其传递到ajaxSubmitButton()
ajax选项,根据Yii论坛上的这篇文章:
你在renderPartial附近有targetdiv?也考虑使用
if (Yii::app()->request->isAjaxRequest) {
$model = new AJAXForm('submit');
if (isset($_POST['AJAXForm'])) {
$model->attributes = $_POST['AJAXForm'];
if ($model->validate()) {
//When data's valid, save to DB is working fine. This part is working perfectly.
}
else {
//This is the part I'm confused about and that's not working
/*Trying to render the form to get the error messages and summary displayed
but nothing's showing */
$this->renderPartial('/site/_form', array('AModel'=>$model));
Yii::app()->end();
}
}
}
array('type' =>'POST',
'update' => '#targetdiv',
'dataType' => 'html',
),
if ($model->validate()) {
//When data's valid, save to DB is working fine. This part is working perfectly.
}
else {
$errors = $model->getErrors();
echo $errors;
Yii::app()->end();
}
'success'=>"function(html) {
if (html.indexOf('{')==0) {
var e = jQuery.parseJSON(html);
jQuery.each(e, function(key, value) {
jQuery('#'+key+'_em_').show().html(value.toString());
jQuery('#'+key).addClass('clsError');
jQuery('label[for='+key+']').addClass('clsError');
});
}