2014-12-17 5 views
2

Я использую этот код для автоматического заполнения с помощью 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(), который не работает.

Во время проверки в светлячок я получаю статус 200 OK как:

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

Тем не менее я получаю значение, как если room_category параметра не входит в комплект.

Любое решение будет принята с благодарностью. Благодарю.

+0

добавить HTML часть также для этого $ ('# dailywardentry-ROOM_NAME') –

+0

Hi , Нитиш Кумар - я уже добавил это - см. Ответ, который я получаю в firefox -' **. GET http: //localhost/hospitalerp/web/index.php? R = daily-ward-entry% 2Fcharges-cash & id = 1 & room_category = 6 ** ' – Pawan

+0

Я думаю, что проблема в коде, который нужно изменить -' $ model = \ app \ models \ IpdCharg es :: findOne (['id' => $ id]); 'Здесь используется только' id', и я не знаю, как добавить параметр для 'room_category' – Pawan

ответ

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 
} 
+0

Привет Али, спасибо за ваше предложение - Но Я получаю 500 внутренних ошибок сервера в firebug 'Произошла ошибка! index.p .../create (строка 569) GET http: //localhost/hospitalerp/web/index.php? R = daily-ward-entry% 2Fchargees-cash & id = 1 & room_category = 6' Я пробовал оба метода – Pawan

+0

Я попытался var_dump на '$ room_category = Yii :: $ app-> getRequest() -> getQueryParam ('room_category');' var_dump ($ room_category); exit; 'Я получаю null в результате дампа – Pawan

+0

Привет Али, Хорошо, есть небольшая опечатка в вашем втором варианте - то есть 'getQueryParam' должен был быть' getQueryParams'. Теперь я получаю var_dump в порядке, но все-таки ошибка ajax. – Pawan

Смежные вопросы