ส่วนใหญ่ยังไม่ทราบว่าคุณสามารถแยกแยะปุ่มแบบฟอร์มที่กดได้โดยเพียงแค่ตั้งชื่อ / คู่ค่า เช่น
<form action="process" method="post">
...
<input type="submit" name="edit" value="Edit">
<input type="submit" name="delete" value="Delete">
<input type="submit" name="move_up" value="Move up">
<input type="submit" name="move_up" value="Move down">
</form>
ในฝั่งเซิร์ฟเวอร์ปุ่มจริงที่กดสามารถรับได้โดยเพียงแค่ตรวจสอบการมีอยู่ของพารามิเตอร์คำขอที่เกี่ยวข้องกับชื่อปุ่ม หากไม่เป็นnull
เช่นนั้นแสดงว่ากดปุ่มแล้ว
ผมเคยเห็นมากของที่ไม่จำเป็น JS แฮ็ก / การแก้ปัญหาสำหรับที่เช่นการเปลี่ยนแปลงการดำเนินการรูปแบบหรือเปลี่ยนค่าการป้อนข้อมูลที่ซ่อนอยู่ก่อนขึ้นอยู่กับการกดปุ่ม มันน่าประหลาดใจมาก
นอกจากนี้ฉันเคยเห็นการแฮ็ก JS / วิธีแก้ปัญหาเกือบทั้งหมดเพื่อรวบรวมช่องทำเครื่องหมายหลายช่องเช่นในแถวตาราง ในการเลือก / ตรวจสอบทุกแถวของตาราง JS จะเพิ่มดัชนีแถวให้กับค่าที่คั่นด้วยเครื่องหมายจุลภาคในองค์ประกอบอินพุตที่ซ่อนอยู่ซึ่งจะถูกแยก / แยกวิเคราะห์เพิ่มเติมในฝั่งเซิร์ฟเวอร์ นั่นเป็นผลมาจากความไม่ทราบว่าคุณสามารถให้องค์ประกอบอินพุตหลายรายการในชื่อเดียวกันแต่เป็นค่าที่แตกต่างกันและคุณยังสามารถเข้าถึงได้เป็นอาร์เรย์ในฝั่งเซิร์ฟเวอร์ เช่น
<tr><td><input type="checkbox" name="rowid" value="1"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="2"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="3"></td><td> ... </td></tr>
...
การไม่ทราบจะทำให้ช่องทำเครื่องหมายแต่ละช่องมีชื่อต่างกันและละเว้นแอตทริบิวต์ค่าทั้งหมด ในบางสถานการณ์ที่ไม่ต้องใช้ JS-hack / วิธีแก้ปัญหาฉันได้เห็นเวทมนตร์ที่ครอบงำโดยไม่จำเป็นในโค้ดฝั่งเซิร์ฟเวอร์เพื่อแยกแยะรายการที่เลือก