是的,javascript将某个字段禁用为未定义的索引

是的,javascript将某个字段禁用为未定义的索引,javascript,indexing,yii,undefined,Javascript,Indexing,Yii,Undefined,因此,在我的_form.php中有2个dropDownLists,我有一个radioButtonList,其中包含2个选项 我的问题是,当我禁用其中一个时,其中一个下拉列表应该被禁用。它确实禁用了,但其中一个将变成未定义的索引,而另一个在禁用时工作正常 这是我的javascript: $(document).ready(function(){ $('input[type=radio]').change(function(){ if(this.value == '0'){

因此,在我的_form.php中有2个
dropDownList
s,我有一个
radioButtonList
,其中包含2个选项

我的问题是,当我禁用其中一个时,其中一个下拉列表应该被禁用。它确实禁用了,但其中一个将变成未定义的索引,而另一个在禁用时工作正常

这是我的javascript:

$(document).ready(function(){
    $('input[type=radio]').change(function(){
        if(this.value == '0'){
            $("#Booking_clientPackagedService_id").prop("disabled", false);
            $("#Booking_service_id").prop("disabled", true);
            $("#Booking_service_id").val('0');
        }
        else if(this.value == '1'){             
            $("#Booking_service_id").prop("disabled", false); 
            $("#Booking_clientPackagedService_id").prop("disabled", true);
            $("#Booking_clientPackagedService_id").val('0');
        }
    });
})
好吧,事情就是这样。如您所见,如果我单击选项“1”,则
Booking\u clientPackagedService\u id
将被禁用并提交。但当我点击表单中的“保存”按钮时,它会说

Error 500: Undefined index clientPackagedService_id
但如果我选择选项“0”并提交,一切都正常<代码>服务id没有给出任何问题

以下是我的2个下拉列表的代码:

<div class="row">
    <?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.
                'data'=>array('clientPackagedService_id'=>'js:this.value', 'dt'=>'js:$("#Booking_date").val()', 'timeStart'=>'js:$("#Booking_timeStart").val()'),
                'dataType'=>'json', 
                'success'=>'js:function(data) {
                    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);
                }',                         
            ) 
        )
    ); ?>
    <?php echo $form->error($model,'clientPackagedService_id'); ?>
    </div><!-- row -->      
    <div class="row">
    <?php echo $form->labelEx($model,'service_id'); ?>
    <?php echo $form->dropDownList($model, 'service_id',  GxHtml::listDataEx(Service::model()->findAllAttributes(null, true)),
        array(              
            //'disabled'=>'disabled', 
            'prompt' => 'Select Service....',
            'ajax' => array( 'type'=>'POST', //request type 
                'url'=>CController::createUrl('updateMasseuseAndStationListSID'), //url to call.
                'data'=>array('service_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);                       
                }',                         
            ) 
        )); 
    ?>
    <?php echo $form->error($model,'service_id'); ?>
    </div><!-- row -->
这两行是原因。谁能给我提个建议吗?谢谢~


进一步调试后更新>只需添加dropdownlist的隐藏重复字段,在本例中


因为
disabled
dropdownlists不会发布/访问PHP服务器端,因此,添加一个隐藏字段将解决问题

有人能帮我吗?谢谢
$("#Booking_clientPackagedService_id").prop("disabled", true);
$("#Booking_clientPackagedService_id").val('0');
$model->bookService($_POST['Booking']['clientPackagedService_id']);