sql >> Database teknologi >  >> RDS >> Mysql

Yii2:automatisk udfyldning af felter baseret på et andet felt fra relateret tabel

Alt du behøver er at kalde en AJAX anmodning om at få nødvendige felter. Bare opfør som nedenfor:

  1. (Jeg kender ikke dit modelnavn) tag et kig på din formular og se, hvad der er id af dit patient_name Mark. Det er normalt modelname-fieldname . Jeg antager, at dit modelnavn er Patient . Altså id'et for patient_name ville være patient-patient_name .

  2. Tilføj en ajax-anmodning (efter din mening).

Koden til at kalde AJAX kunne se ud som nedenfor:

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

Bemærkninger:

  • Skift ControllerName i ovenstående kode med din egen.
  • Jeg antog, at id'et for city og state felter har følgende id(er):patient-city og state-city forholdsvis.
  • patient er en handling i din controller
  • Du skal muligvis fjerne advarsler|logfiler og tilpasse koden ovenfor
  • Jeg overvejede ikke nogen betingelser for koderensning. Sørg for, at brugerdata er korrekte.

    1. Tilføj endelig handlingskode til din controller.

Handlingskode:

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. Brug for en sql-forespørgsel for at finde indlæg med flest kommenterede rækkefølge efter antal kommentarer/antal DESC

  2. Hvordan kører man et program fra SQL?

  3. Doktrin roder forespørgsler om Entiteter med en Extends

  4. Hvordan EXTRACTVALUE() virker i MariaDB