Sekarang persoalannya ialah mengapa kita perlu mencipta parameter pertanyaan menggunakan JavaScript. Marilah kita memahaminya melalui contoh kehidupan sebenar.
Sebagai contoh, jika anda melawati tapak web Amazon dan mencari sebarang produk, anda akan melihat bahawa ia secara automatik menambahkan pertanyaan carian anda pada URL. Ini bermakna kita perlu menjana parameter pertanyaan daripada pertanyaan carian.
Selain itu, kami boleh membenarkan pengguna memilih sebarang nilai daripada pilihan lungsur turun. Kami boleh menjana parameter pertanyaan dan mengubah hala pengguna ke URL baharu berdasarkan nilai yang dipilih untuk mendapatkan hasil. Kami akan belajar membuat parameter pertanyaan dalam tutorial ini.
Di sini kita akan melihat contoh yang berbeza untuk mencipta parameter pertanyaan.
encodeURIComponent() membolehkan kami mengekod aksara khas URL. Sebagai contoh, URL tidak mengandungi ruang. Oleh itu, kita perlu menggantikan aksara ruang dengan rentetan '%20', yang mewakili format pengekodan aksara ruang.
Selain itu, encodedURLComponent() digunakan untuk mengekod komponen URL dan bukannya mengekod keseluruhan URL.
Pengguna boleh membuat parameter pertanyaan mengikut sintaks berikut dan mengekodnya menggunakan kaedah komponen URI yang dikodkan ().
queryString += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
Dalam sintaks di atas, kunci ialah set kunci untuk parameter pertanyaan dan nilai berkaitan dengan kunci khusus parameter pertanyaan. Kami menggunakan aksara "=" untuk memisahkan kunci dan nilai, dan aksara "&" untuk memisahkan dua pertanyaan.
Dalam contoh di bawah, kami mencipta objek dan menyimpan pasangan nilai kunci. Menggunakan kunci dan nilai objek, kami mencipta parameter pertanyaan. Selepas itu, gelung for-of berulang melalui objek, mendapatkan pasangan nilai kunci satu dengan satu dan menggunakan kaedah URIComponent() yang dikodkan untuk menjana rentetan yang dikodkan.
Akhir sekali, kami mengambil subrentetan yang panjangnya sama dengan panjang rentetan pertanyaan -1 untuk mengalih keluar aksara "&" terakhir.
<html> <body> <h2>Using the <i>encodedURIComponent() method</i> to Create query params using JavaScript </h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let objectData = { 'search': 'JavaScript', 'keyword': 'query params.' } let queryString = "" for (let key in objectData) { queryString += encodeURIComponent(key) + '=' + encodeURIComponent(objectData[key]) + '&'; } queryString = queryString.substr(0, queryString.length - 1) output.innerHTML += "The encoded query params is " + queryString; </script> </body> </html>
Dalam contoh ini, kami mengambil data input pengguna sebagai parameter pertanyaan. Kami menggunakan kaedah prompt() untuk mendapatkan input pengguna, yang mendapat kunci dan nilai daripada pengguna satu demi satu.
Selepas itu, kami menggunakan kaedah encodeURIComponent() untuk mencipta parameter pertanyaan menggunakan nilai input pengguna.
<html> <body> <h2>Using the <i>encodedURIComponent() method</i> to Create query params of user input values</h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let param1 = prompt("Enter the key for the first query", "key1"); let value1 = prompt("Enter the value for the first query", "value1"); let param2 = prompt("Enter the key for the second query", "key2"); let value2 = prompt("Enter the value for the second query", "value2"); let queryString = "" queryString += encodeURIComponent(param1) + '=' + encodeURIComponent(value1) + '&'; queryString += encodeURIComponent(param2) + '=' + encodeURIComponent(value2); output.innerHTML += "The encoded query string from the user input is " + queryString; </script> </body> </html>
Dalam tutorial ini, pengguna mempelajari cara membuat parameter pertanyaan daripada data yang berbeza. Kami belajar membuat parameter pertanyaan daripada data objek. Selain itu, kami belajar menggunakan input pengguna untuk membuat parameter pertanyaan, yang sangat berguna apabila menambahkan fungsi carian pada tapak web.
Atas ialah kandungan terperinci Bagaimana untuk membuat parameter pertanyaan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!