Yii,已经定义了索引但是`Undefined Index`

时间:2015-04-07 01:26:46

标签: post indexing yii undefined

我已经正确地将索引定义为POST - 但仍然显示Undefined Index

以下是我的代码:

_form.php中的

<?php echo $form->labelEx($model,'clientPackagedService_id'); ?>
<?php $client = Client::model()->findByPk(1);?>
<?php echo $form->dropDownList($model, 'clientPackagedService_id', CHtml::listData($client->clientPackagedservices(array('condition'=>'client_id='.$client->id.' AND booking_id IS NULL')),'id','packagedServiceInfo'),
    array(              
            'disabled'=>'disabled', 
            'prompt'=>'Select Packaged Service...',
            'ajax' => array( 'type'=>'POST', //request type 
                'url'=>CController::createUrl('updateMasseuseAndStationListPSID'), //url to call.
//This line->           'data'=>array('clientPackagedService_id'=>'js:this.value', 'dt'=>'js:$("#Booking_date").val()', 'timeStart'=>'js:$("#Booking_timeStart").val()'),
                'dataType'=>'json', 
                'success'=>'js:function(data) {
                    //alert(data.masseuse);
                    var mass="#'.CHtml::activeId($model, 'masseuse_id').'"; 
                    $(mass).html(data.masseuse); 
                    $(mass).trigger("chosen:updated"); 
                    $(mass+"_chzn").css("width","300px");
                    $(mass+"_chzn > .chzn-drop").css("width","298px");                              

                    var station="#'.CHtml::activeId($model, 'station_id').'"; 
                    $(station).html(data.station); 
                    $(station).trigger("chosen:updated"); 
                    $(station+"_chzn").css("width","300px");
                    $(station+"_chzn > .chzn-drop").css("width","298px"); 

                    //alert(data.timeEnd);
                    var timeEnd="#'.CHtml::activeId($model, 'timeEnd').'";
                    $(timeEnd).val(data.timeEnd);                           

                }',                         
            ) 
        )
    ); ?>

在controller.php中:

public function actionUpdateMasseuseAndStationListPSID(){       

    $sid = Booking::getServices($_POST['clientPackagedService_id']);

    ....(codes to update Masseuse, Station, and TimeEnd.
}

在model.php中

public static function getServices($cpsID){

    $psID = Yii::app()->db->createCommand('SELECT packagedService_id FROM client_packagedservice WHERE id='.$cpsID)->queryAll();
    $sID = Yii::app()->db->createCommand('SELECT service_id FROM packaged_service WHERE id = '.$psID)->queryAll();

    return $sID;

}

正如您所看到的,我已经在controller.php中发布了相应的名称$_POST['clientPackagedService_id'],但我仍然得到Error 500: Undefined index: clientPackagedService_id

我在某处做错了吗?请指教。感谢

1 个答案:

答案 0 :(得分:0)

我认为问题是您使用ajax请求发布的数据。这是您的数据:

'data'=>array('clientPackagedService_id'=>'js:this.value', 'dt'=>'js:$("#Booking_date").val()', 'timeStart'=>'js:$("#Booking_timeStart").val()'),

尝试将其更改为:

'data'=>array('clientPackagedService_id'=>'js:$(this).value', 'dt'=>'js:$("#Booking_date").val()', 'timeStart'=>'js:$("#Booking_timeStart").val()'),

调试ajax请求的最佳方法是检查浏览器的控制台。您可以查看ajax发布的数据并实现您的问题。