Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii CGridView呈现一个新页面,而不是AJAX_Php_Ajax_Yii - Fatal编程技术网

Php Yii CGridView呈现一个新页面,而不是AJAX

Php Yii CGridView呈现一个新页面,而不是AJAX,php,ajax,yii,Php,Ajax,Yii,在我的网站的索引页中,我有一个浮动div块,里面有CGridView 我需要使用排序,过滤,分页等选项,但只能通过更新这个唯一的div,而不是刷新整个页面 数据呈现应该是这样的,我只需要更新网格内容——所有都有href,它将用户发送到指定的视图 以下是网格视图:(它是我的views.users.usersGrid.php的唯一内容) 它是从views.users.users.php调用的: 控制器: public function actionUsers() { $this->re

在我的网站的索引页中,我有一个浮动div块,里面有CGridView

我需要使用排序,过滤,分页等选项,但只能通过更新这个唯一的div,而不是刷新整个页面

数据呈现应该是这样的,我只需要更新网格内容——所有
都有href,它将用户发送到指定的视图

以下是网格视图:(它是我的views.users.usersGrid.php的唯一内容)

它是从views.users.users.php调用的:

控制器:

public function actionUsers() {
    $this->renderPartial('users');
}

public function actionUsersGrid() {
    if(!Yii::app()->request->isAjaxRequest) die('Url should be requested via ajax only');
    $model = new Users();
    $this->renderPartial('usersGrid',array(
        'model' => $model,
    ));
}

非常感谢您的帮助

请使用
renderPartial
方法中的第三个和第四个参数,如下所示

$this->renderPartial('users',array(),false,true);
$this->renderPartial('users',array(),false,true);

它将解决第四个参数中的问题(设置
processOutput=true

请在renderPartial方法中使用第三个和第四个参数,如下所示

$this->renderPartial('users',array(),false,true);
$this->renderPartial('users',array(),false,true);
它将解决第四个参数中的问题(设置
processOutput=true

这在我的代码中不起作用。我在ma控制器中这样使用

$this->renderPartial('_searchQuote', array('model' => $model, 'month' => $month, 'user' => $user), false, $processOutput=false );      

您所说的“从views.users.users.php调用它”是什么意思:“……所以我不确定我是否可以帮助您处理Ajax请求本身,但在我看来,与其在
users.php
上调用
,不如将
renderPartial('usersGrid'…
,并将您的
ajaxUrl
命名为完全不同的名称,例如
ajaxCall
,然后在控制器中,除去
actionUsersGrid
,并将其命名为
actionAjaxCall
(当然,这取决于您如何命名
ajaxUrl
),并在那里设置ajax操作…这是users.php中放置gridview的那一行。就像这样:
一些文本
我刚刚编辑了我的注释…基本上你调用它的方式是错误的…我之所以只将它添加为注释,是因为我无法帮助你进行ajax调用,但视图的设置方式是明确的非常不正确…在我对此进行了一些尝试和尝试后,代码发生了一些变化。以前,我将用户和用户网格放在一个文件中,通过
renderspace('usersGrid',array('model'=>$model))构建
所以没有此调用,但它的工作方式与现在相同。好的,谢谢,我将尝试更改您评论的此部分,并让您知道我正在父视图中使用它,我也在此处尝试过,但没有效果。请查看我最后一次对问题的评论:)