Rumah  >  Artikel  >  rangka kerja php  >  Pembina borang dalam rangka kerja Yii: membina bentuk kompleks

Pembina borang dalam rangka kerja Yii: membina bentuk kompleks

WBOY
WBOYasal
2023-06-21 10:09:251565semak imbas

Dengan perkembangan pesat Internet, aplikasi Web semakin menjadi bahagian yang amat diperlukan dalam kehidupan orang ramai. Borang adalah salah satu elemen yang sangat diperlukan dalam aplikasi web Ia digunakan untuk mengumpul data pengguna supaya aplikasi web dapat memberi perkhidmatan yang lebih baik kepada pengguna.

Rangka kerja Yii ialah rangka kerja PHP yang pantas, cekap dan fleksibel yang boleh membantu pembangun membangunkan aplikasi web dengan lebih cepat. Pembina Borang dalam rangka kerja Yii membolehkan pembangun membina borang yang kompleks dengan mudah, memberikan aplikasi web pengalaman pengguna yang lebih baik.

Artikel ini akan memperkenalkan pembina borang dalam rangka kerja Yii, memfokuskan pada cara menggunakan pembina untuk membina borang yang kompleks.

1. Pengenalan kepada pembina borang Yii

Pembina borang Yii ialah komponen dalam rangka kerja Yii dan digunakan untuk mencipta borang web. Ia menyediakan antara muka pengaturcaraan berorientasikan objek yang ringkas untuk mencipta elemen bentuk biasa dengan mudah seperti kotak teks, kotak semak, butang radio, kotak lungsur turun, dsb.

Selain daripada membina borang, Yii form builder mempunyai banyak fungsi lain. Contohnya, ia boleh mengesahkan input borang secara automatik dan menyediakan pengesahan berasaskan klien untuk mengelakkan pengesahan bahagian pelayan yang tidak diperlukan. Ia juga menyokong tugasan kelompok borang dan pengendalian ralat borang, jadi pembangun boleh menangkap ralat borang dan mengendalikannya dengan mudah.

2. Bina borang ringkas

Dalam rangka kerja Yii, sangat mudah untuk menggunakan pembina borang untuk membina borang. Berikut ialah contoh borang mudah:

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

$form = ActiveForm::begin();

echo $form->field($model, 'name');
echo $form->field($model, 'email');
echo $form->field($model, 'password')->passwordInput();

echo Html::submitButton('Submit', ['class' => 'btn btn-primary']);

ActiveForm::end();

Kod di atas menggunakan kawalan ActiveForm untuk mencipta borang. Untuk setiap medan yang perlu ditambahkan pada borang, gunakan kaedah $form->field($model, 'attribute'). Antaranya, $model ialah model yang akan diikat kepada bentuk, dan 'atribut' ialah atribut model.

Dalam contoh di atas, terdapat tiga medan dalam bentuk: 'nama', 'e-mel' dan 'kata laluan'. Medan 'kata laluan' dibentangkan sebagai kotak input kata laluan menggunakan kaedah passwordInput().

Akhir sekali, tambah butang hantar menggunakan kaedah Html::submitButton. Butang serah adalah bersamaan dengan jenis="serahkan" teg input dalam borang HTML.

3. Bina borang yang kompleks

Dalam pembangunan sebenar, kita biasanya perlu membina bentuk yang lebih kompleks, seperti mengandungi berbilang medan bersarang, menambah/memadam medan secara dinamik, dsb. Pada masa ini, pembina borang Yii boleh melaksanakan fungsinya yang berkuasa.

  1. Borang bersarang

Dalam rangka kerja Yii, anda boleh menggunakan borang bersarang dengan mudah untuk membina borang yang kompleks.

Sebagai contoh, kita perlu membina borang dengan medan alamat. Medan alamat termasuk tiga sub-bidang: wilayah, bandar dan daerah/daerah. Dalam borang, kita boleh menyarangkan tiga submedan ini dalam medan tatasusunan alamat, seperti yang ditunjukkan di bawah:

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

$form = ActiveForm::begin();

echo $form->field($model, 'name');
echo $form->field($model, 'email');

echo $form->field($model, 'address[province]');
echo $form->field($model, 'address[city]');
echo $form->field($model, 'address[district]');

echo Html::submitButton('Submit', ['class' => 'btn btn-primary']);

ActiveForm::end();

Dalam contoh di atas, kami menggunakan 'alamat[daerah]', 'alamat[ bandar]' dan 'alamat Sintaks [daerah]' untuk mengikat subbidang wilayah, bandar, daerah/daerah ke medan tatasusunan alamat.

Apabila membina borang bersarang, anda hanya perlu menggunakan sintaks nama yang sepadan untuk mengikat medan anak ke medan induk.

  1. Tambah/padam medan secara dinamik

Dalam pembangunan sebenar, kita biasanya perlu menambah/memadam medan borang secara dinamik untuk menyesuaikan diri dengan keperluan pengguna yang berbeza.

Dalam rangka kerja Yii, kita boleh menggunakan JavaScript untuk melaksanakan fungsi menambah/mengalih keluar medan secara dinamik.

Sebagai contoh, kita perlu membina borang yang menambah/mengalih keluar alamat e-mel secara dinamik. Dalam borang, kami boleh menggunakan JavaScript untuk melaksanakan fungsi menambah butang dan mengalih keluar butang, seperti yang ditunjukkan di bawah:

<?php

use yiihelpersHtml;
use yiiwidgetsActiveForm;

$form = ActiveForm::begin();

echo $form->field($model, 'name');
echo $form->field($model, 'email[]')->textInput(['class' => 'email-field']);
echo Html::button('Add Email', ['class' => 'add-email']);

echo Html::submitButton('Submit', ['class' => 'btn btn-primary']);

ActiveForm::end();
?>

<script>
$(document).ready(function(){
    var emailCount = 1;
    $('.add-email').click(function(){
        emailCount++;
        var html = '<div class="form-group"><label>Email</label><input type="text" class="form-control email-field" name="email[]"></div>';
        $(html).appendTo('#email_wrapper');
        return false;
    });
    $(document).on('click', '.remove-email', function(){
        $(this).closest('.form-group').remove();
        emailCount--;
        return false;
    });
});
</script>

Dalam contoh di atas, kami menggunakan sintaks e-mel[] untuk mengikat berbilang alamat e-mel pada atribut model yang sama. Kami juga telah menambah butang 'Tambah E-mel' pada borang untuk menambah alamat e-mel secara dinamik. Apabila butang ini diklik, kotak teks baharu ditambah secara dinamik pada borang.

Pada masa yang sama, kami juga menambahkan nama kelas 'alih keluar-e-mel' untuk mengalih keluar alamat e-mel secara dinamik. Apabila butang dengan nama kelas 'alih keluar-e-mel' diklik, kotak teks alamat e-mel yang sepadan akan dipadamkan secara dinamik.

Menggunakan JavaScript untuk menambah/memadam medan secara dinamik boleh menjadikan borang lebih fleksibel dan adaptif, memberikan pengguna pengalaman pengguna yang lebih baik.

Kesimpulan

Borang merupakan salah satu elemen yang amat diperlukan dalam aplikasi web Oleh itu, pembinaan borang adalah tugas penting dalam pembangunan aplikasi web.

Pembina borang Yii menyediakan fungsi yang ringkas, fleksibel dan berkuasa, yang boleh membantu pembangun membina bentuk yang kompleks dan pelbagai dengan mudah, memberikan pengalaman pengguna yang lebih baik untuk aplikasi web.

Jika anda seorang pembangun rangka kerja Yii, maka artikel ini akan memberi anda pemahaman yang mendalam tentang cara menggunakan pembangun borang Yii dan membantu anda membangunkan aplikasi web dengan lebih baik.

Atas ialah kandungan terperinci Pembina borang dalam rangka kerja Yii: membina bentuk kompleks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn