Mysql
 sql >> база данни >  >> RDS >> Mysql

Yii2:полета за автоматично попълване въз основа на друго поле от свързана таблица

Всичко, от което се нуждаете, е да извикате AJAX заявка за получаване на необходимите полета. Просто действайте както следва:

  1. (Не знам името на вашия модел) погледнете формуляра си и вижте какъв е id на вашия patient_name поле. Обикновено е modelname-fieldname . Предполагам, че името на вашия модел е Patient . И така, идентификаторът на patient_name ще бъде patient-patient_name .

  2. Добавете ajax заявка (по ваш изглед).

Кодът за извикване на AJAX може да изглежда точно както по-долу:

$this->registerJs("$('#patient-patient_name').on('change',function(){
    $.ajax({
        url: '".yii\helpers\Url::toRoute("controllerName/patient")."',
        dataType: 'json',
        method: 'GET',
        data: {id: $(this).val()},
        success: function (data, textStatus, jqXHR) {
            $('#patient-city').val(data.city);
            $('#patient-state').val(data.state);
        },
        beforeSend: function (xhr) {
            alert('loading!');
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.log('An error occured!');
            alert('Error in ajax request');
        }
    });
});"); 

Бележки:

  • Променете ControllerName в горния код с вашия собствен.
  • Предположих, че идентификаторът на city и state полета има следния идентификатор(а):patient-city и state-city относително.
  • пациент е действие във вашия контролер
  • Може да се наложи да премахнете регистрационните файлове за предупреждения и да направите някои персонализации на горния код
  • Не взех предвид никакви условия за почистване на кода. Моля, уверете се, че потребителските данни са правилни.

    1. Накрая добавете код за действие във вашия контролер.

Код на действие:

public function actionPatient($id){
    // you may need to check whether the entered ID is valid or not
    $model=  \app\models\Patient::findOne(['id'=>$id]);
    return \yii\helpers\Json::encode([
        'city'=>$model->city,
        'state'=>$model->state
    ]);
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка в MySql 150 - Външни ключове

  2. Просто преобразувайте 5-цифрено число в базата данни на mysql в дата

  3. Как да заредя локален .SQL файл в MySQL?

  4. Как да напиша SQL заявка, за да разберете сумата на най-високите 4 колони от 5 колони?

  5. Първичният ключ автоматично ли се индексира в MySQL?