成功提交后没有刷新页面,我的ajaxSubmitButton不保存数据。当我单击该按钮时,它会删除输入字段的内容,但不保存数据。尽管存在错误和成功参数,但不会显示任何消息。
在我的表单提交中,提交按钮的代码如下
<?php echo CHtml::ajaxSubmitButton(
'Save',
Yii::app()->createUrl('post/viewComment'),
array(
'success'=>'js:function(data){
alert("commentSubmitted");}',
'error'=>'js:function(data){
alert("comment NOT Submitted");}',
)
);
?>
我的控制器操作代码是
public function actionViewComment()
{
$post=$this->loadModel();
$comment=$this->newComment($post);
$this->renderPartial('_viewComment',array(
'model'=>$post,
'comment'=>$comment,
));
viewCommment视图,显示_view视图以列出注释,最后显示_form视图以使用户输入新注释
newComment函数包含以下内容
protected function newComment($post)
{
$comment=new Comment;
if(isset($_POST['ajax']) && $_POST['ajax']==='comment-form')
{
echo CActiveForm::validate($comment);
Yii::app()->end();
}
if(isset($_POST['Comment']))
{
$comment->attributes=$_POST['Comment'];
if($post->addComment($comment))
{
if($comment->status==Comment::STATUS_PENDING)
Yii::app()->user->setFlash('commentSubmitted','Thank you for your comment. Your comment will be posted once it is approved.');
$this->refresh();
}
}
return $comment;
}
实际上,我使用Yii Framework的博客演示,虽然这是学习Yii Framework的一个很好的起点。
主页显示帖子列表。 (它renderPartial _view.php。)
我创建了ajax按钮,以便能够列出与给定帖子关联的提交,并在表单底部显示新注释的输入表单。
我添加了第二个按钮,其中包含“经典提交”
<?php echo CHtml::submitButton($model->isNewRecord ? 'Submit' : 'Save'); ?>
它可以工作,但我会将其重定向到评论列表,这就是我想要避免的; 通过使用AjaxsubmitButton。当我把光标放在经典按钮或Ajax按钮上时,链接是相同的..... / blog / index.php / post / viewComment?id = ...
显示如下
发布1
发布2
comment 1
comment 2
comment 3
添加评论
Input Field
AjaxSubmit Button
发布3
当我点击ajaxsubmit按钮时,我有以下
发布1
发布2
comment 1
comment 2
comment 3
添加评论
Input Field
AjaxSubmit Button
添加评论
Input Field
AjaxSubmit Button
发布3
所以我在第一个窗口下方有第二个窗口窗口。评论未保存。
提前感谢您的帮助
答案 0 :(得分:0)
您正在处理POST中的数据。但你没有在代码中提到。
<?php echo CHtml::ajaxSubmitButton(
'Save',
Yii::app()->createUrl('post/viewComment'),
array(
'type'=>'POST',
'dataType'=>'json',
'success'=>'js:function(data){
alert("commentSubmitted");}',
'error'=>'js:function(data){
alert("comment NOT Submitted");}',
)
);
?>