Materi
Saat tombol kirim ditekan, browser mengumpulkan pasangan name=value dari setiap isian yang punya name, lalu menyambungnya dengan tanda &. Isian tanpa name dilewati.
<form action="/cari" method="get">
<label for="q">Kata kunci</label>
<input type="search" id="q" name="q">
<label for="kota">Kota</label>
<select id="kota" name="kota">
<option value="smg">Semarang</option>
<option value="sby">Surabaya</option>
</select>
<button type="submit">Cari</button>
</form>
<!-- Mengetik roti dan memilih Semarang membuka /cari?q=roti&kota=smg -->Atribut method menentukan letak pasangan itu. Dengan get, pasangan ditempel ke alamat setelah tanda tanya, seperti contoh di atas. Alamat itu bisa disimpan dan dibagikan, jadi get cocok untuk pencarian dan filter. Dengan post, pasangan dikirim di badan permintaan dan tidak tampak di alamat. Kata sandi selalu lewat post, karena alamat terlihat di bilah alamat dan tersimpan di riwayat. Tanpa method, browser memakai get. Tanpa action, data dikirim ke alamat halaman itu sendiri.
Pada isian pilihan, yang terkirim adalah value, bukan teks yang terlihat. select mengirim value dari option yang dipilih; option tanpa value mengirim teksnya. Radio dengan name yang sama membentuk satu kelompok: hanya satu yang bisa dipilih, dan hanya yang terpilih yang terkirim. Bungkus kelompok itu dengan fieldset berjudul legend supaya pertanyaannya terbaca bersama pilihannya.
Kotak centang hanya terkirim saat dicentang. Tanpa value, isinya on, misalnya ingat=on. Kotak yang tidak dicentang tidak mengirim apa pun, dan server membaca ketiadaan nama itu sebagai tidak.
