queryall migraciones createcommand consultas con php mysql ajax yii2

php - migraciones - Yii2: campos de relleno automático basados ​​en otro campo de la tabla relacionada



yii2 odbc (1)

Todo lo que necesita es llamar a una solicitud de AJAX para obtener los campos necesarios. Solo actúa como abajo:

  1. (No sé el nombre de su modelo) eche un vistazo a su formulario y vea cuál es la id de su campo patient_name . Por lo general, es modelname-fieldname . Supongo que su nombre de modelo es Patient . Entonces, la identificación de patient_name sería patient-patient_name .

  2. Agregue una solicitud de AJAX (en su opinión).

El código para llamar a AJAX podría verse como a continuación:

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

Notas:

  • Cambie el ControllerName en el código anterior con el suyo.
  • Supuse que la identificación de state campos de la city y el state tiene los siguientes id. (S): patient-city y state-city relativamente.
  • paciente es una acción en tu controlador
  • Es posible que tenga que eliminar alertas | registros y hacer algunas personalizaciones en el código anterior
  • No consideré ninguna condición para la limpieza del código. Por favor, asegúrese de que los datos del usuario sean correctos.

    1. Finalmente, agregue código de acción en su controlador.

Código de acción:

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 ]); }

Tengo una tabla MySQL y un modelo patient_entry que contiene los campos patient_name , city y state . También tengo otra tabla / modelo health_card que también contiene patient_name , city y state .

Supongamos que la tabla patient_entry ya está llena con patient_name , city y state .

Cuando ingreso datos en el formulario health_card , cuando selecciono el patient_name del patient_name en el campo desplegable relacionado con la tabla patient_entry , deseo que los campos relacionados con la city y el state se llenen automáticamente.

Mi _form.php para health_card tiene este aspecto:

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

Y en el controlador he agregado, según la sugerencia, esto:

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