PHP - การคำนวนค่าใน Array TextBox พร้อมผลลัพธ์ของการคำนวน ในแต่ละแถว ของ form ตอนที่ 2

   Tuesday, 07 September 2010 16:42

ตัวอย่างโค้ด 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>
 



 textbox array input sample

 สิ่งที่ต้องแก้ไขคือ

ส่วนที่เป็นชื่อ 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  

 
0 #4 Webmaster 2011-09-13 15:16
ลองดูตัวอย่างใน บทความนี้ดูค่ะ
http://www.ban-goi.com/php/155-php-database-mysql-select.html
เพียงแต่เปลี่ยน จากการแสดงเป็นข ้อความธรรมดา เป็นใส่ใน textbox แทน ^^

ลองทำไปก่อนนะคะ เด้วว่าง ๆ จะหาเวลามาเขียน ตัวอย่างให้ดูค่
Quote
 
 
0 #3 Manasak Thanadeechukiat 2011-09-13 15:03
สวัสดีครับ.อ.ก้อย..
มีเรื่องรบกวนอย ากขอ code หรือรูปแบบการดึ งข้อมูลจาก mysql ซึ่งมีฐานข้อมูล ลูกค้าอยู่แล้ว..ในการค้นหา เมื่อเจอแล้วก็เ อามาไว้ใน textbox บนหัวของ ฟอร์มบิล จะต้องเขียนอย่า งไรครับ..ในการดึงข้อมูลม าแสดง แล้วให้ไปเก็บใน ตารางบิล ที่มีรายการต้าง ๆ ของบิลอยู่

ขอบคุณมากครับ..
มานะศักดิ์ :D
Quote
 
 
0 #2 Manasak Thanadeechukiat 2011-03-11 10:40
ไม่ต้องใช้จาวาค รับ. ผมใช้ตัวนี้แทน โดยเอาค่า result,discount ,total ไปเปลี่ยนค่าของ a1,a2,a3 โดย textbox ของผมคือ ตัว discount,total เป็นตัวแสดงจะไม ่บันทึกลงฐานข้อ มูลครับ. ต้องนี้ผ่านเรีย บร้อยแล้วครับ.
โดยเปลี่ยนการ บวก เป็น คูณ หรือ ลบ ก็ได้ครับ.หากท่านใดสนใจ


บวก

เท่ากับ

อ้างอิงจาก http://www.thaicreate.com/php/forum/055491.html
Quote
 
 
0 #1 มานะศักดิ์ 2011-03-08 13:27
ผมลองรัน code ที่ อ. ให้มา ไปทำงานเลยครับ.ทั้งใน แถว 1 แถว 2 ยังไม่ร่วม discount / total ครับ.
อ.เพิ่ม function เฉพาะ
function startCalDiscoun t(){ interval = setInterval("cald()",1); } นี้ใช่ใหมครับ.
เพิ่ม textbox = discount กับ total อีก 2 อันใช่ใหมครับ. ก็ยังรันไม่ได้ค รับ.
Quote
 

Add comment


Security code
Refresh

หน้าหลัก บทเรียน PHP PHP - การคำนวนค่าใน Array TextBox พร้อมผลลัพธ์ของการคำนวน ในแต่ละแถว ของ form ตอนที่ 2
Joomla template modify by Ban-Goi.com