【发布时间】:2014-03-22 12:19:13
【问题描述】:
我有带有 ajax 提交按钮的 yii 表单我想在我的主页上包含这个表单,当我点击按钮时,我编写了如下代码:
$.ajax({
type: 'POST',
data: x,
url:'<?php echo yii::app()->createAbsoluteUrl("site/info_form");?>',
scriptCharset:"application/x-www-form-urlencoded; charset=UTF-8",
success: function(get)
{
document.getElementById("form1").innerHTML=get;
}
});
});
</script>
info_form 使用 ajax 提交按钮获取表单 .. 单击提交时无法执行 ajax
我的控制器:
公共函数 actionAdd_main_info() {
$model_info=new FreeMainInfo;
$user=Yii::app()->session['user_id'] ;
if(isset($_POST['FreeMainInfo']))
{
$model_info->attributes=$_POST['FreeMainInfo'];
if($model_info->validate())
{
$model_info->full=1;
$model_info->reg_id=$user;
$model_info->save(false);
echo CJSON::encode(array('status'=>'success' ));
Yii::app()->end();
}
else
{
$error = CActiveForm::validate($model_info);
if($error!='[]')
echo $error;
Yii::app()->end();
}
}
}
我通过 ajax 生成的表单:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'main_info',
'action'=>Yii::app()->createUrl('//site/add_main_info'),
'enableAjaxValidation' => false,
'clientOptions' => array(
'validateOnSubmit' => false,
),
'htmlOptions'=>array('class'=>'form-horizontal SearchForm'),
)); ?>
我的 ajax 提交按钮:
echo CHtml::ajaxSubmitButton('Save Your Main Info',CHtml::normalizeUrl(array('site/add_main_info','render'=>true)),
array(
'type'=>'POST',
'dataType'=>'json',
'data'=>'js:$("#main_info").serialize()',
'success'=>'function(data) {
if(data.status=="success"){
$("#form1").remove();
$("#alert1").remove();
}
else{
$.each(data, function(key, val) {
$("#"+key+"_em_").text(val);
$("#"+key+"_em_").hide();
$("#"+key+"_em_").text(val);
$("#"+key+"_em_").show();
});
}
}',
),array('id'=>'submit','class'=>'btn btn btn-primary'));
【问题讨论】: