【问题标题】:ajaxbutton how to prevent refresh of the pageajaxbutton如何防止页面刷新
【发布时间】:2014-02-02 08:43:30
【问题描述】:

我成功地将 Ajax 与 Yii 框架一起使用。 我从一个帖子列表中渲染一个表单。

我想要做的是防止用户点击表单中的ajax按钮时刷新。

在表格的开头我使用下面的代码来激活 ajax

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'post-form',
    'enableAjaxValidation'=>true,
    'enableClientValidation'=>true,
)); ?>

在页面的最后,我只有一个 ajax 按钮

<?php    echo CHtml::ajaxSubmitButton('Save'); ?>

在动作控制器中我有以下内容

if(isset($_POST['ajax']) && $_POST['ajax']==='comment-form')
    {
    echo CActiveForm::validate($comment);
        Yii::app()->end();
    }

当我单击 ajax 按钮时,它会保存数据但刷新页面,因此它会显示表单。 我想要的是留在页面上。

有人帮忙吗? 提前谢谢你。

【问题讨论】:

标签: ajax yii


【解决方案1】:

您可以阻止页面刷新,或通过此代码询问用户是否确定要离开页面:

window.onbeforeunload = function() {
        return "Dude, are you sure you want to leave? Think of the kittens!";
    }

你可以检查这个问题:Prevent any form of page refresh using jQuery/Javascript

【讨论】:

  • 是不是表示如果用户回答 no ,评论就不会被保存?我想保存它而不重定向。 @Prog-Mania
  • 是的,这将向用户显示一个确认框,询问他是否确定要重新加载页面,您可以附加一条消息,说明后台仍在处理一些工作。 @sanfisa
【解决方案2】:

我想你有类似$this-&gt;redirect( ... ));的东西

$model-&gt;save() 之后的控制器中,对吗?

所以不要重定向到那里

【讨论】:

  • 在检查 ajax 调用的操作中,我通过返回 $comment 变量 @tinyByte 完成
猜你喜欢
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多