ในการพัฒนาเว็บคุณมักจะพบช่องทำเครื่องหมายก่อนแต่ละบันทึกในหน้าจอรายการ คลิกและเลือกบันทึกเพื่อลบแก้ไขดูและการดำเนินการอื่น ๆ
การปรับเปลี่ยนและการดูจะได้รับค่า id ของบันทึกแล้วส่งผ่านไปยังพื้นหลังสำหรับการสอบถามเพื่อรับค่าแอตทริบิวต์ต่างๆของวัตถุบันทึกแล้วแสดงบนหน้าจอ
จุดสำคัญที่ฉันกำลังพูดถึงคือการเลือกหลายระเบียนแล้วลบออกเป็นแบทช์ วิธีรับค่า ID ของหลายระเบียนเป็นกุญแจสำคัญในการแก้ไขปัญหา อย่างแรกคือวิธีการเลือกช่องทำเครื่องหมายทั้งหมดในหน้า JSP
รหัสมีดังนี้:
ฟังก์ชั่น checkEvent (ชื่อ, allcheckId) {var allck = document.getElementById (allcheckid); if (allck.checked == true) checkall (ชื่อ); else checkallno (ชื่อ); } // เลือกฟังก์ชั่นทั้งหมด checkall (ชื่อ) {var names = document.getElementByName (ชื่อ); var len = names.length; if (len> 0) {var i = 0; สำหรับ (i = 0; i <len; i ++) ถ้า (! ชื่อ [i] .disabled) {ชื่อ [i] .Checked = true; }}} // อย่าเลือกฟังก์ชั่น checkallNo (ชื่อ) {var names = document.getElementByName (ชื่อ); var len = names.length; if (len> 0) {var i = 0; สำหรับ (i = 0; i <len; i ++) ชื่อ [i] .Checked = false; -รหัส JSP ที่เรียกวิธีนี้:
<input name = "checkall" id = "checkall" onclick = "checkEvent ('เลือก FAQID', 'checkall')" type = "ช่องทำเครื่องหมาย"/> </td>โดยที่เลือก FAQID เป็นค่าแอตทริบิวต์ชื่อของช่องทำเครื่องหมายและ Checkall เป็นชื่อแอตทริบิวต์ชื่อของกล่องกาเครื่องหมายส่วนหัวของตาราง
เมื่อแผนกต้อนรับส่วนหน้าเรียกใช้รหัสแบทช์ JS จะต้องแยกค่ารหัสบันทึกที่เลือกด้วยเครื่องหมายจุลภาคและลบรหัสวิธีแบทช์ดังนี้:
ฟังก์ชั่น batchDeleteChfaq (IDSTR) {var ids = "'"; $ ("อินพุต [name = 'liespefaqid']") แต่ละ (ฟังก์ชั่น () {ถ้า (this.checked) {ids+= this.value+", '"}}); ids+= "'"; ids = ids.replace (/, ''/g, ''); if (ids == "''") {jqdialog.alert ("<s: ชื่อข้อความ = 'faqManage.pleaseSelectfaq'/>"); กลับ; } $ .ajax ({ประเภท: "โพสต์", url: "ผู้ดูแลระบบ/faqmanageaction! batchdeletefaq.action", ข้อมูล: {เลือก faqid: ids}, ข้อมูล: "ข้อความ", ความสำเร็จ: ฟังก์ชั่น (html) {ถ้า (html == "ความสำเร็จ" name = 'faqManage.operationWassuccessful'/> ", function () {window.location.href = window.location.href.replace (/#/g, '');});} else {jqdialog.alert (" <s: text name = - -พื้นหลังได้รับชุดค่า id ที่ส่งกลับโดยแผนกต้อนรับส่วนหน้า
ids สตริงสุดท้าย = this.getRequest (). getParameter ("เลือก FAQID");วิธีดั้งเดิมในการรับกลุ่ม ID ที่เลือกมีดังต่อไปนี้:
ids สตริงสุดท้าย = this.getRequest (). getParametervalues ("เลือก FAQID");วิธีนี้คุณสามารถรับอาร์เรย์สตริงได้โดยตรงโดยไม่ต้องดำเนินการแก้ไขใด ๆ ฉันจำไม่ได้ว่าเหตุผลที่ฉันเปลี่ยนเป็นวิธีการปัจจุบันในภายหลัง
ในที่สุดรหัสที่เรียกใช้รหัสที่ถูกลบในเลเยอร์ BOMUFAGFE BO:
/ ** * การลบปัญหาคำถามที่พบบ่อยตาม ID * @param faqanswer * @return */ โมฆะสาธารณะ batchdeletefaq (รหัสสตริงสุดท้าย) {สตริงสุดท้าย hql = "ลบจาก faqanswer o โดยที่ o.id ใน ("+ids+")"; FAQMANAGERDAO.EXECUTE (HQL); -โดยสรุปฉันใช้วิธีการส่ง AJAX หลังจากคลิกปุ่มลบแบทช์ก่อนอื่นให้ตรวจสอบว่าผู้ใช้ได้เลือกอย่างน้อยบันทึกมิฉะนั้นข้อความแจ้งจะปรากฏขึ้นหรือไม่ หลังจากเลือกแล้วให้คลิกปุ่มลบเพื่อดำเนินการวิธีพื้นหลัง หากการดำเนินการล้มเหลวในการดำเนินการกล่องข้อความความล้มเหลวของการดำเนินการจะปรากฏขึ้น
ด้านบนเป็นวิธีการรับหลายค่า ID หลังจากคลิกที่ช่องทำเครื่องหมายบนหน้าจอรายการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณต้องการทราบข้อมูลเพิ่มเติมโปรดให้ความสนใจกับเว็บไซต์ Wulin.com!