sql >> Databáze >  >> RDS >> Mysql

Yii2:automatické vyplňování polí na základě jiného pole ze související tabulky

Vše, co potřebujete, je zavolat AJAX žádost o získání potřebných polí. Postupujte takto:

  1. (Neznám název vašeho modelu) podívejte se na svůj formulář a zjistěte, jaké je id vašeho patient_name pole. Obvykle je to modelname-fieldname . Předpokládám, že název vašeho modelu je Patient . Takže id patient_name by bylo patient_name .

  2. Přidejte požadavek ajax (podle vašeho názoru).

Kód pro volání AJAX by mohl vypadat následovně:

$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');
        }
    });
});"); 

Poznámky:

  • Změňte ControllerName ve výše uvedeném kódu s vaším vlastním.
  • Předpokládám, že id city a state pole má následující id:patient-city a state-city poměrně.
  • pacient je akce ve vašem ovladači
  • Možná budete muset odstranit záznamy|protokoly a provést určité úpravy výše uvedeného kódu
  • Nezvažoval jsem žádné podmínky pro čištění kódu. Ujistěte se prosím, že uživatelská data jsou správná.

    1. Nakonec do ovladače přidejte kód akce.

Kód akce:

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. Jak mohu získat poslední vložené ID pomocí Hibernate

  2. Převeďte DateTime na yyyyMMddHHmm v T-SQL

  3. Chyba při použití příkazu copy v Postgresu (CHYBA:neplatná vstupní syntaxe pro typ datum:)

  4. Po otevření souboru csv do wordpadu nechci u názvu pole dvojité uvozovky