我使用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()
答案 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行之前出现错误