Yii Ajax错误500

时间:2014-02-20 17:06:50

标签: yii frameworks

我使用Clistview创建了一个生成Cgridview的主要细节但是当我点击链接时调用该函数崩溃并说:

Error 500: <h1>PHP Error [8]</h1>
<p>Undefined offset: 0 (C:\APP\htdocs\yii\yiitest\protected\controllers\ZfInmueblesController.php:176)</p>

我认为这是ajax但是我有一个没有ajax的过滤器形式,并且分页也说同样的错误。

控制器:

$dataProviderDoc = new CActiveDataProvider(ZfDocumentacionInmueble::model(), array(
            'keyAttribute'=>'doc_id',
            'criteria'=>array(
                'condition'=>'zf_inmuebles_inmueble_id=-1',
            ),
        ));

        if(Yii::app()->request->isAjaxRequest){
            // el update del CGridView Productos hecho en Ajax produce un ajaxRequest sobre el mismo
            // action que lo invoco por primera vez y el argumento fue pasado mediante {data: xxx} al // momento de hacer el update al CGridView con id 'productos'
            $zf_inmuebles_inmueble_id = $_GET[0];
            // actualizas el criteria del data provider para ajustarlo a lo que se pide:
            $dataProviderDoc->criteria = array('condition'=>'zf_inmuebles_inmueble_id='.$zf_inmuebles_inmueble_id);
            // para responderle al request ajax debes hacer un ECHO con el JSON del dataprovider
            echo CJSON::encode($dataProviderDoc);
        }

VIEW(索引):

function mostrarDetalles($id){
        // no olvides configurar tu CActiveDataProvider con: 'keyAttribute'=>'idcategoria',
        alert($id);
        //var doc_id = $.fn.yiiListView.getSelection('inmuebles');
        var id_inm = $id;
        $.fn.yiiGridView.update('docs',{ data: id_inm });
    }

查看(_view):

echo CHtml::link('DOCUMENTACIÓN '.$img, '#documentacion', array('data-toggle' => 'modal','onclick'=>"{mostrarDetalles($id)}",));

错误获取:

PHP Error [8]

Undefined offset: 0 (C:\APP\htdocs\yii\yiitest\protected\controllers\ZfInmueblesController.php:177)

#0 C:\APP\htdocs\yii\yiitest\protected\controllers\ZfInmueblesController.php(177): CWebApplication->handleError()#1 C:\APP\htdocs\yii\framework\web\actions\CInlineAction.php(49): ZfInmueblesController->actionIndex()#2 C:\APP\htdocs\yii\framework\web\CController.php(308): CInlineAction->runWithParams()#3 C:\APP\htdocs\yii\framework\web\filters\CFilterChain.php(133): ZfInmueblesController->runAction()#4 C:\APP\htdocs\yii\yiitest\protected\modules\cruge\components\CrugeAccessControlFilter.php(90): CFilterChain->run()#5 C:\APP\htdocs\yii\framework\web\filters\CFilter.php(38): CrugeAccessControlFilter->preFilter()#6 C:\APP\htdocs\yii\framework\web\filters\CFilterChain.php(130): CrugeAccessControlFilter->filter()#7 C:\APP\htdocs\yii\framework\web\filters\CFilter.php(40): CFilterChain->run()#8 C:\APP\htdocs\yii\framework\web\CController.php(1145): CAccessControlFilter->filter()#9 C:\APP\htdocs\yii\framework\web\filters\CInlineFilter.php(58): ZfInmueblesController->filterAccessControl()#10 C:\APP\htdocs\yii\framework\web\filters\CFilterChain.php(130): CInlineFilter->filter()#11 C:\APP\htdocs\yii\framework\web\CController.php(291): CFilterChain->run()#12 C:\APP\htdocs\yii\framework\web\CController.php(265): ZfInmueblesController->runActionWithFilters()#13 C:\APP\htdocs\yii\framework\web\CWebApplication.php(282): ZfInmueblesController->run()#14 C:\APP\htdocs\yii\framework\web\CWebApplication.php(141): CWebApplication->runController()#15 C:\APP\htdocs\yii\framework\base\CApplication.php(180): CWebApplication->processRequest()#16 C:\APP\htdocs\yii\yiitest\index.php(13): CWebApplication->run()

2 个答案:

答案 0 :(得分:1)

如果您的函数中有变量,请将其设置为

public function actionName($_GET[0] = 0){
    echo $_GET[0];
}

答案 1 :(得分:0)

您正在使用$GET[0]。在您给定的代码中,索引0未定义为y它会给出错误。数组始终由key=>value pair

组成
array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)


在您的代码$.fn.yiiGridView.update中。实际上这段代码会自动向控制器发送ajax请求 当您以{data: id_inm }的身份发送数据时,您需要以$_GET['id_inm']

的形式访问此数据
$zf_inmuebles_inmueble_id = $_GET['id_inm'];

添加

CVarDumper::Dump($_GET,100,true);
die();

在第177行之前出现错误