สอบถามการ sum ค่าหลายแถวแบบมีเงื่อนไข
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการ sum ค่าหลายแถวแบบมีเงื่อนไข
สอบถามการ sum ค่าหลายแถวแบบมีเงื่อนไข
สิ่งที่ต้องการคือ เมื่อ user คีย์จำนวนไร่ งาน วา ในแต่ละแถวแล้วให้ระบบแสดงผล sum ด้านล่างให้อัตโนมัติ (ถ้าเป็นการ sum ข้อมูลปกติครับ ทำได้อยู่ครับ) เนื่องจากข้อมูลตามตัวอย่างเป็นข้อมูลที่ดิน ซึ่งต้อง sum แบบมีเงื่อนไขเฉพาะในรูปแบบของที่ดิน ที่คิดได้คือตอน user keyup ต้องทำหน่วยให้เป็นตารางวาทั้งหมด (1 ไร่ = 400 ตารางวา | 1 งาน = 100 ตารางวา) แล้วค่อยแปลงตารางวากลับเป็นจำนวนไร่ งาน ตารางวา โดยการหารเอาเศษ (mod) ใส่ในแถว sum ด้านล่าง แต่เขียนใน jquery ไม่ถูกครับ
รบกวนขอคำแนะนำหรือตัวอย่างหน่อยครับ ขอบคุณครับ

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
แนวทางการ sum ข้อมูล
>>> อัพเดท >>> 07-05-2022
------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <div> <input class = "area set_area1" > <input class = "area set_area2" > <input class = "area set_area3" > </div> <div> <input class = "area set_area1" > <input class = "area set_area2" > <input class = "area set_area3" > </div> <hr> <div> <input class = "sum_area1" readonly> <input class = "sum_area2" readonly> <input class = "sum_area3" readonly> </div> <script> $( ".area" ).on( "keyup" , function (){ var a1 = 0; var a2 = 0; var a3 = 0; $( ".set_area1" ).each( function (i,j){ a1 += isNaN(parseInt($(j).val()))?0:parseInt($(j).val()); a2 += isNaN(parseInt($( ".set_area2:eq(" +i+ ")" ).val()))?0:parseInt($( ".set_area2:eq(" +i+ ")" ).val()); a3 += isNaN(parseInt($( ".set_area3:eq(" +i+ ")" ).val()))?0:parseInt($( ".set_area3:eq(" +i+ ")" ).val()); if (i==$( ".set_area1" ).length-1){ $( ".sum_area1" ).val(a1); $( ".sum_area2" ).val(a2); $( ".sum_area3" ).val(a3); } }); }); </script> |
>>> อัพเดท >>> 07-05-2022
------------------------------------------
ถ้าต้องคำนวณเพิ่มเติมสำหรับค่า ไร่ งาน และตารางวา ให้แทรก
การคำนวณ เช้าไป ก่อนที่นำค่าไปแสดง เป็นประมาณนี้
1 2 3 4 5 6 7 8 9 | if (i==$( ".set_area1" ).length-1){ a2 += (a3>=100)?Math. floor (a3/100):0; // ใช้ค่าจากตารางวา a3 = a3%100; // หาตารางวา a1 += (a2>=4)?Math. floor (a2/4):0; // ใช้ค่าจากงาน a2 = a2%4; // หางาน $( ".sum_area1" ).val(a1); $( ".sum_area2" ).val(a2); $( ".sum_area3" ).val(a3); } |

ความคิดเห็นที่
2
ทำได้แล้วนะครับ ขอบคุณสำหรับการช่วยเหลือมาก ๆ ครับ

ขอบคุณทุกการสนับสนุน
![]()