Yii2:Ajax调用多个参数

时间:2014-12-17 03:43:46

标签: php jquery ajax yii2

我正在使用此代码自动填充ajax调用,没有任何问题:

我的视图文件中的代码:

$this->registerJs("$('#dailywardentry-doctor_visit_name').on('change',function(){
    $.ajax({
        url: '".yii\helpers\Url::toRoute("daily-ward-entry/charges-cash")."',
        dataType: 'json',
        method: 'GET',       
        data: {id:$('#dailywardentry-doctor_visit_name').val(),
       room_category:$('#dailywardentry-room_name').val()// Want to use this additional params 

        },
        success: function (data, textStatus, jqXHR) {
            $('#dailywardentry-visit_charges').val(data.visit_charges);
            $('#dailywardentry-doctor_id').val(data.doctor_id);
            },
    });
});");

我的控制器中的代码就像:

public function actionChargesCash($id){

        $model = \app\models\IpdCharges::findOne(['id'=>$id]);
        return \yii\helpers\Json::encode([
            'visit_charges'=>$model->charges_cash,
            'doctor_id'=>$model->doctor_id

        ]); 
    }

我想根据无效的附加参数room_category:$('#dailywardentry-room_name').val()来填充数据。

在检查Firefox时,我收到状态200 OK,如:

**GET http://localhost/hospitalerp/web/index.php?r=daily-ward-entry%2Fcharges-cash&id=1&room_category=6**

仍然我得到的值好像没有提供参数room_category。

任何解决方案都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

你可以像下面这样得到这个例子:

public function actionChargesCash($id,$room_category){
    $model = \app\models\IpdCharges::findOne(['id'=>$id,'room_category'=>$room_category]);
    //rest of code
}

还有另一种方法:

public function actionChargesCash($id){
    $room_category=Yii::$app->getRequest()->getQueryParam('room_category');
    $model = \app\models\IpdCharges::findOne(['id'=>$id,'room_category'=>$room_category]);
    //rest of code
}