Tutorial Yii2 Bagian 24 : Menggunakan Ajax untuk mengambil Data

Disini kita akan memanfaatkan ajax untuk mendapatkan values dari tabel.

1. Buat tabel locations dengan field sebagai berikut :

Tutorial-Yii2-Menggunakan-Ajax-untuk-mengambil-data

 

2. Buat table customers dengan field sebagai berikut :

Tutorial-Yii2-Memanfaatkan-AJAX-untuk-mengambil-values-dari-tabel-

 

3. Buat model dan CRUD locations dan customers menggunakan Gii.

4. Di view Create Customers, kita akan membuat supaya City dan Province akan otomatis mengikuti zip code yang kita pilih. Kita isikan Create Locations dengan zip code misalnya 1111 kota New York, province New Jersey dan 2222 kota Dallas, province Texas.

5. Modifikasi _form.php yang berada di view Customers untuk menambahkan Select2 widget pada field Zip Code.  Jangan lupa lengkapi use nya.

6. Sekarang kita akan get request untuk mendapatkan City dan Province ketika zip code dipilih. Kita perlu menambahkan jQuery untuk melakukan hal ini. Sebelumnya, kita tambahkan actionGetCityProvince di LocationsController dengan membawa parameter zipId.

Jangan lupa menambahkan use yii\helpers\Json.

Kembali ke _form.php dan tambahkan javascript di bagian bawah :

Sehingga _form.php menjadi seperti ini :

Sekarang apabila zip code dipilih, maka City dan Province akan terisi dengan otomatis.

Tutorial ini sebagai dokumentasi dan pembelajaran pribadi sekalian belajar terjemahin bahasa Inggris, dan siapa tahu bermanfaat buat orang lain. Sumber lengkapnya diambil dari Youtube DoingITEasy Channel.

3 thoughts on “Tutorial Yii2 Bagian 24 : Menggunakan Ajax untuk mengambil Data

  • saya sudah mengikuti tutorialnya select bisa tapi tidak muncul data city dan province data sudah saya isi di location ini kenapa ya mas

  • divideo doingiteasy seperti ini
    public function actionGetCityProvince($zipId)
    {
    $location = Locations::find()
    ->where([‘zip_code’ => $zipId])
    ->one();
    echo Json::encode($location);
    }

    $script = <<registerJs($script);

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.