|
ตัวอย่างโค้ด PHP การคำนวนค่าใน Array TextBox พร้อมผลลัพธ์ของการคำนวน ในแต่ละแถว ของ form ตอนที่ 2 เพิ่มความสมบูร์ของระบบตัวอย่าง
** เป็นคำถามของสมาชิกเว็บบ้านก้อยค่ะ เห็นว่าอาจจะมีประโยชน์เลยเอามาเขียนในบทความค่ะ และนำเนื้อหามาขยายผลต่อ สามารถดูเพิ่มเติมได้ที่นี่ค่ะ http://www.ban-goi.com/forum/2-%E0%B8%96%E0%B8%B2%E0%B8%A1- -%E0%B8%95%E0%B8%AD%E0%B8%9A-PHP/33-%E0%B8%82%E0%B8%AD %E0%B8%9A%E0%B8%84%E0%B8%B8%E0%B8 %93%E0%B8%84%E0%B8%A3%E0%B8%B1%E0%B8%9A.html
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD>
<BODY>
<SCRIPT Language="JavaScript">
function startCalDiscount(){ interval = setInterval("cald()",1); }
function cald(){ var txttotalgap = document.forms['autoSumForm'].elements['totalgap']; var txtdiscount = document.forms['autoSumForm'].elements['txtdiscount']; var txttotal = document.forms['autoSumForm'].elements['txttotal']; var result = (txttotalgap.value * 1) - (txtdiscount.value * 1); txttotal.value =result ;}
function startCalc(row, target, sumassess, gap){ interval = setInterval("calc('"+row+"', '"+target+"', '"+sumassess+"', '"+gap+"')",1); }
function calc(row, target, sumassess, gap){ var txttarget = document.forms['autoSumForm'].elements[target]; var txtsumassess = document.forms['autoSumForm'].elements[sumassess]; var txtgap = document.forms['autoSumForm'].elements[gap]; var txttotalgap = document.forms['autoSumForm'].elements['totalgap']; var result = (txtsumassess.value * 1) - (txttarget.value * 1); txtgap.value =result ; var total = 0 for(var i=1; i <= row; i++) { var result = document.forms['autoSumForm'].elements['gap'+i]; total = total + (result.value*1); } txttotalgap.value =total ;
}
function stopCalc(){ clearInterval(interval); }
</SCRIPT>
<div style="width: 200px; text-align: center;"> <form name="autoSumForm" id="autoSumForm">
<table width="685" border="0"> <tr> <td><div align="left">target</div></td> <td><div align="left"> sumassess</div></td> <td><div align="left"> GAP</div></td> </tr> <tr> <td width="144"> <div align="left"> <input class="right" type=text id="target1" value="" onFocus="startCalc('2', 'target1', 'sumassess1', 'gap1');" onBlur="stopCalc();"> </div></td> <td width="159"><div align="left">-<input class="right" type=text id="sumassess1" value="" onFocus="startCalc('2', 'target1', 'sumassess1', 'gap1');" onBlur="stopCalc();"></div></td> <td width="368"><div align="left">=<input class="right" type=text id="gap1"></div></td> </tr> <tr> <td width="144"> <div align="left"> <input class="right" type=text id="target2" value="" onFocus="startCalc('2', 'target2', 'sumassess2', 'gap2');" onBlur="stopCalc();"></div></td> <td width="159"><div align="left">-<input class="right" type=text id="sumassess2" value="" onFocus="startCalc('2', 'target2', 'sumassess2', 'gap2');" onBlur="stopCalc();"></div></td> <td width="368"><div align="left">=<input class="right" type=text id="gap2"></div></td> </tr> <tr> <td width="144"><div align="left"></div></td> <td width="159"><div align="left">Result </div></td> <td width="368"><div align="left">=<input class="right" type=text id="totalgap"></div></td> </tr> <tr> <td width="144"><div align="left"></div></td> <td width="159"><div align="left">Discount </div></td> <td width="368"><div align="left">=<input class="right" type=text id="txtdiscount" onFocus="startCalDiscount();" onBlur="stopCalc();"></div></td> </tr> <tr> <td width="144"><div align="left"></div></td> <td width="159"><div align="left">Total </div></td> <td width="368"><div align="left">=<input class="right" type=text id="txttotal"></div></td> </tr> </table> <p> </p> </form> </div> </BODY> </HTML>

สิ่งที่ต้องแก้ไขคือ
ส่วนที่เป็นชื่อ form ของ อ.ก้อยเป็น ['autoSumForm']. ต้องเปลี่ยนมาเป็น form เรา
onFocus="startCalc(row, target, sumassess, gap)" row = จำนวนแถวทั้งหมด (ในตัวอย่างมี 2 แถว) target = ชื่อ TextBox ในส่วนของ target ในแถวนั้น ๆ sumassess = ชื่อ TextBox ในส่วนของ sumassess ในแถวนั้น ๆ gap = ชื่อ TextBox ในส่วนของ GAP ในแถวนั้น ๆ
ฟังก์ชั่น startCalc(row, target, sumassess, gap) เป็นการคำนวนค่าในแถวนั้น ๆ ฟังก์ชั้่น startCalDiscount() เป็นการคำนวนส่วนลด
ลองเอาตัวอย่างไป รันดูนะคะ ^^
|
Comments
http://www.ban-goi.com/php/155-php-database-mysql-select.html
เพียงแต่เปลี่ยน จากการแสดงเป็นข ้อความธรรมดา เป็นใส่ใน textbox แทน ^^
ลองทำไปก่อนนะคะ เด้วว่าง ๆ จะหาเวลามาเขียน ตัวอย่างให้ดูค่ ะ
มีเรื่องรบกวนอย ากขอ code หรือรูปแบบการดึ งข้อมูลจาก mysql ซึ่งมีฐานข้อมูล ลูกค้าอยู่แล้ว..ในการค้นหา เมื่อเจอแล้วก็เ อามาไว้ใน textbox บนหัวของ ฟอร์มบิล จะต้องเขียนอย่า งไรครับ..ในการดึงข้อมูลม าแสดง แล้วให้ไปเก็บใน ตารางบิล ที่มีรายการต้าง ๆ ของบิลอยู่
ขอบคุณมากครับ..
มานะศักดิ์
โดยเปลี่ยนการ บวก เป็น คูณ หรือ ลบ ก็ได้ครับ.หากท่านใดสนใจ
บวก
เท่ากับ
อ้างอิงจาก http://www.thaicreate.com/php/forum/055491.html
อ.เพิ่ม function เฉพาะ
function startCalDiscoun t(){ interval = setInterval("cald()",1); } นี้ใช่ใหมครับ.
เพิ่ม textbox = discount กับ total อีก 2 อันใช่ใหมครับ. ก็ยังรันไม่ได้ค รับ.
RSS feed for comments to this post