【问题标题】:Yii2: Ajax Call multiple parametersYii2:Ajax调用多个参数
【发布时间】:2014-12-17 03:43:45
【问题描述】:

我正在使用此代码自动填充 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 一样。

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

【问题讨论】:

  • 也为此 $('#dailywardentry-room_name') 添加 html 部分
  • 嗨,Nitish Kumar - 我已经添加了这个 - 查看我在 Firefox 中得到的回复 -**GET http://localhost/hospitalerp/web/index.php?r=daily-ward-entry%2Fcharges-cash&id=1&room_category=6**
  • 我认为问题出在需要修改的代码中 - $model = \app\models\IpdCharges::findOne(['id'=>$id]); 这里只有 id 用于查找,我不知道如何为 room_category 添加参数跨度>

标签: php jquery ajax yii2


【解决方案1】:

你可以像下面这样得到这个参数:

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
}

【讨论】:

  • 嗨 Ali,感谢您的建议 - 但我在 firebug An error occured! index.p.../create (line 569) GET http://localhost/hospitalerp/web/index.php?r=daily-ward-entry%2Fcharges-cash&id=1&room_category=6 中收到 500 内部服务器错误我已尝试两种方法
  • 我在$room_category=Yii::$app->getRequest()->getQueryParam('room_category'); var_dump($room_category);exit 上尝试了一个var_dump;我在转储结果中得到了空值
  • 嗨 Ali,好的,您的第二个选项中有一个小错字 - 即 getQueryParam 应该是 getQueryParams。现在我得到了 var_dump 好的,但仍然是 ajax 错误。
  • Ok Ali variable_dump for $model 我得到null 这是问题的原因
  • 嗨 Ali - 终于用选项 1 解决了,我必须做一点改变,比如 $model = \app\models\IpdCharges::findOne(['doctor'=>$id,'room_category'=>$room_category]);,即用 ipd_charges 表中的列名 'doctor' 替换 id。非常感谢你,你是天才!
猜你喜欢
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多