


Lulus data borang untuk penapisan data dinamik menggunakan jQuery dan datatables
Oct 12, 2025 am 05:36 AM Artikel ini bertujuan untuk menyelesaikan cara lulus data ke datatables melalui html
Pelaksanaan Front-End: JQuery dan Integrasi Data
Pertama, kita perlu membuat borang yang mengandungi elemen
Struktur HTML (index.php):
Kod JQuery:
Berikut adalah kod utama untuk menggunakan jQuery untuk mendengar peristiwa penyerahan borang dan memuatkan semula data AJAX dari datatables.
$ (dokumen) .ready (fungsi () { var Table = $ ('#Place-table'). DataTable ({ "Ajax": { URL: "json.php", "datasrc": "", "data": fungsi (d) { var frm_data = $ ('#frm'). SerializeArray (); // Gunakan pemilih id $ .each (frm_data, fungsi (kunci, val) { d [val.name] = val.value; }); } }, lajur: [{ Data: 'Place_id' }, { Data: 'Place_name' }, { Data: 'total_visitor' }] }); $ ("#frm"). hantar (fungsi (e) {// menggunakan pemilih id e.PreventDefault (); table.ajax.reload (); }); });
Penjelasan kod:
- var Table = $ ('#Place-table'). DataTable ({...}) : Inisialisasi datatables dan tetapkan objek DataTables ke jadual pembolehubah untuk operasi berikutnya.
- "Data": Fungsi (d) {...} : Dalam permintaan AJAX, tentukan fungsi data untuk membina data secara dinamik untuk dihantar ke pelayan. $ ('#frm'). SerializeArray () bersiri data borang ke dalam array, kemudian gelung melalui array, menambah nilai setiap medan ke parameter permintaan Ajax 'Ajax. Perhatikan bahawa anda perlu menggunakan #FRM untuk memilih borang melalui pemilih ID.
- $ ("#frm"). Kirim (fungsi (e) {...}) : Dengarkan acara penyerahan borang. E.PreventDefault () menghalang tingkah laku penyerahan lalai borang, dan table.ajax.reload () Muat semula data AJAX dari datatables untuk mengemas kini kandungan jadual. Perhatikan bahawa anda perlu menggunakan #FRM untuk memilih borang melalui pemilih ID.
Pelaksanaan Backend: Penapisan Data PHP (JSON.PHP)
Di sisi pelayan, kita perlu menerima permintaan AJAX dari datatables dan menanyakan pangkalan data menggunakan data borang sebagai klausa WHERE.
Php $ serverName = "localhost"; $ username = "your_username"; $ password = "your_password"; $ dbname = "your_database"; // Buat sambungan $ conn = mysqli baru ($ serverName, $ username, $ kata laluan, $ dbName); // Semak sambungan jika ($ conn-> connect_error) { mati ("Sambungan gagal:". $ conn-> connect_error); } $ selectedPlace = $ _post ['selectplace']; // Dapatkan nilai selectplace $ sql = "pilih * dari placestable where place_name = '$ selectedplace'"; // Gunakan pernyataan yang disediakan untuk mengelakkan suntikan sql $ result = $ conn-> query ($ sql); $ data = array (); jika ($ hasil-> num_rows> 0) { sementara ($ row = $ result-> fetch_assoc ()) { $ data [] = array ( "Place_id" => $ row ['id'], "Place_name" => $ row ['Place_name'], "total_visitor" => $ row ['total_visitor'] ); } } echo json_encode ($ data); $ conn-> close (); ?>
Penjelasan kod:
- $ selectedPlace = $ _post ['selectplace']; : Dapatkan nilai SelectPlace yang dihantar melalui permintaan pos.
- * `$ sql =" Pilih dari Placestable Where Place_Name = '$ SelectedPlace' "; **: Bina pernyataan pertanyaan SQL dan gunakan nilai $ SelectedPlace sebagai syarat klausa WHERE. Penting: Untuk melindungi daripada serangan suntikan SQL, anda harus menggunakan kenyataan yang disediakan untuk membina pertanyaan SQL. Contohnya:
$ stmt = $ conn-> Sedia ("pilih * dari placestable where place_name =?"); $ stmt-> bind_param ("s", $ selectedPlace); $ stmt-> Execute (); $ result = $ stmt-> get_result ();
- echo json_encode ($ data); : Kodkan hasil pertanyaan ke dalam format JSON dan hantar kembali kepada pelanggan.
Nota dan ringkasan
- Keselamatan: Sentiasa gunakan pernyataan yang disediakan untuk mencegah serangan suntikan SQL, terutamanya apabila menggunakan input pengguna yang dibekalkan untuk membina pertanyaan SQL.
- Pengendalian ralat: Tambahkan mekanisme pengendalian ralat pada sisi pelayan supaya apabila ralat berlaku, ia dapat mengendalikan dan mengembalikan maklumat ralat dengan betul kepada klien.
- Pengoptimuman Prestasi: Jika jumlah data adalah besar, pertimbangkan untuk menggunakan paging sisi pelayan untuk meningkatkan prestasi.
- Pengesahan Borang: Pengesahan borang dilakukan pada kedua -dua sisi klien dan pelayan untuk memastikan kesahan dan integriti data.
- Pemilih ID : Pastikan menggunakan pemilih ID #FRM apabila memilih borang dalam jQuery. Ini akan memilih elemen borang sasaran dengan lebih tepat.
Melalui artikel ini, anda belajar bagaimana untuk mengintegrasikan borang HTML dengan data untuk melaksanakan penapisan data dinamik. Menguasai teknologi ini akan membolehkan anda membina aplikasi web yang lebih fleksibel dan interaktif.
Atas ialah kandungan terperinci Lulus data borang untuk penapisan data dinamik menggunakan jQuery dan datatables. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

UseFilter_var () TOVALIDATEMailSyntaxandCheckDnsrr () TOVERIFYDOnMAINMXRECORDS.example: $ e -mel = "user@example.com"; if (filter_var ($ e -mel, filter_email) && checkDnsrr (expode '

UseUnserialize (Serialize ($ obj)) fordeepcopyingWhenallDataisserizable; jika tidak, pelaksanaan__clone () tomanuallyduplicatenestedObjectsandavoidsharedReferences.

UseArray_Merge () toCombineArrays, OverwritingDuplicateStringKeySandreIndexingNumericKeys; forsimplerconcatenation, terutamaInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Namespacesinphporganizecodeandpreventnamingnamingconflictsbygroupinglasses, antara muka, fungsi, dan constantsunderaspecificname.2.defineAnamespaceusingthenamespaceywordetopofafile, diikuti olehbythenamespaceakenam

Toupdateadatabaserecordinphp, firstConnectusingPdoormySqli, thenusePePreparedStatementStoExecuteAseCureSqlupDateQuery.example: $ pdo = newpdo ("mysql: host = localhost; dbName = your_database: $ userbase: $ userbase"

The__call () methodistriggeredWhenaninaccessibleorundefinedmethodiscalledonanObject, membolehkanCustomHandlylyAccepteThemeThodnamnamnamnents, asshownwhencallingundefinedmethodslikesayhello ()

UsePathinfo ($ FileName, pathinfo_extension) togetthefileextension; itreliLyHandlesmultipledotsandgecases, returnTheExtension (mis., "Pdf") Oranemptystringifnoneexists.

Gunakan kelas ziparchive untuk membuat fail zip. Pertama instantiate dan buka zip sasaran, tambahkan fail dengan addfile, menyokong laluan dalaman tersuai, fungsi rekursif boleh membungkus seluruh direktori, dan akhirnya memanggil dekat untuk menyimpan untuk memastikan bahawa PHP mempunyai kebenaran menulis.
