Dalam pengembangan web, Anda sering menemukan kotak centang sebelum setiap catatan di layar daftar. Klik dan pilih catatan untuk menghapus, memodifikasi, melihat, dan operasi lainnya.
Modifikasi dan tampilan adalah untuk mendapatkan nilai ID dari suatu catatan dan kemudian meneruskannya ke latar belakang untuk meminta untuk mendapatkan berbagai nilai atribut dari objek catatan, dan kemudian menampilkannya di layar.
Titik kunci yang saya bicarakan adalah memilih beberapa catatan dan kemudian menghapusnya dalam batch. Cara mendapatkan nilai ID dari beberapa catatan adalah kunci masalah. Yang pertama adalah metode memilih kotak centang semua di halaman JSP.
Kodenya adalah sebagai berikut:
function checkEvent (name, allcheckId) {var allck = document.geteLementById (allcheckId); if (allck.checked == true) chapsall (name); lain cobsallno (name); } // Pilih semua fungsi gantinya (name) {var name = document.geteLementsByName (name); var len = names.length; if (len> 0) {var i = 0; untuk (i = 0; i <len; i ++) if (! Names [i] .disabled) {names [i] .Checked = true; }}} // Jangan pilih fungsi chapsallno (name) {var name = document.geteLementsbyname (name); var len = names.length; if (len> 0) {var i = 0; untuk (i = 0; i <len; i ++) Nama [i] .Checked = false; }}Kode JSP yang menyebut metode ini:
<input name = "checkall" id = "checkall" onclick = "checkEvent ('chooseFaqid', 'checkall')" type = "centang kotak"/> </td>Di mana, ChooseFaqid adalah nilai atribut nama kotak centang, dan Chosnall adalah nilai atribut nama kotak centang tajuk tabel.
Ketika meja depan mengeksekusi kode js batch, perlu memisahkan nilai ID rekaman yang dipilih dengan koma, dan menghapus kode metode batch sebagai berikut:
fungsi BatchDeleteChFaq (IDSTR) {var ids = "'"; $ ("input [name = 'chooseFaqid']"). masing -masing (function () {if (this.checked) {ids+= this.value+"','"}}); IDS+= "'"; id = ids.replace (/, ''/g, ''); if (ids == "''") {jqdialog.alert ("<s: name teks = 'faqManage.Pleaseselectfaq'/>"); kembali; } $ .AJAX ({type: "POST", URL: "ADMIN/FAQMANAGEACTION! BatchDeleteFaq.action", data: {chooseFaqid: ids}, DataType: "Text", Success: function (html) {if (html == "success") {jqdialog (html) {if (html == "success") {jqdialoG. name = 'faqManage.OperationWassuccessFul'/> ", function () {window.location.href = window.location.href.replace (/#/g, '');});} else {jqdialog.alert (" <s: name teks = 'faqManage.OPERGASIONGEREDEDPLEAD.Atetrety ("<S: Text name =' faqManage.OPERGORIONGERASI (" {{JQDIALOG. }); }Latar belakang memperoleh satu set nilai ID yang dikirim kembali ke meja depan
final string ids = this.getRequest (). getParameter ("chooseFaqid");Metode asli mendapatkan grup ID yang dipilih adalah sebagai berikut:
final string ids = this.getRequest (). getParameterValues ("chooseFaqid");Dengan cara ini Anda bisa mendapatkan array string secara langsung tanpa operasi pengeditan. Saya tidak ingat apa alasan saya berubah menjadi metode saat ini nanti.
Akhirnya, kode yang mengeksekusi kode yang dihapus di lapisan latar belakang:
/ ** * Batch menghapus masalah FAQ berdasarkan id * @param faqanswer * @return */ public void batchDeletefaq (ID string akhir) {string final hql = "Hapus dari faqanswer o di mana o.id in ("+ids+")"; faqManagerdao.execute (HQL); }Singkatnya, saya menggunakan metode pengiriman AJAX. Setelah mengklik tombol Hapus Batch, pertama -tama tentukan apakah pengguna telah memilih setidaknya catatan, jika tidak pesan cepat akan muncul. Setelah memilih, klik tombol Hapus untuk menjalankan metode latar belakang. Jika operasi gagal dieksekusi, kotak Pesan Kegagalan Operasi muncul.
Di atas adalah metode mendapatkan beberapa nilai ID setelah mengklik kotak centang pada layar daftar. Saya harap ini akan membantu semua orang. Jika Anda ingin mengetahui informasi lebih lanjut, harap perhatikan situs web Wulin.com!