ขอแนวทางหน่อยครับ ติดปัญหาการรวมจำนวน รวมได้แต่พอแก้ไข แล้วกลับไม่ได้
ในตัวโปรแกรมผม จะเป็นการ ใส่รหัส (จะมีชื่อสินค้า ราคา1 ราคา2 ขึ้นมา) ใส่จำนวน ที่ขาย จากนั้น ใส่ราคาที่ขาย จะมีการคำนวนหาส่วนลด ทั้งบาท เปอร์เซนต์ และจำนวนเก็บเงินทั้งหมดให้
ใน textbox แต่ละอัน เป็นการเพิ่ม textbox แบบ multiple textbox ตาม code นี้
Code (PHP)
function addbox(){
var b=document.getElementById('inputboxes' );
var el1=document.createElement("br" );
var el2=document.createElement("input");
var el3=document.createTextNode(" ");
var el4=document.createElement("input");
var el5=document.createTextNode(" ");
var el6=document.createElement("input");
var el7=document.createTextNode(" ");
var el8=document.createElement("input");
var el9=document.createTextNode(" ");
var el10=document.createElement("input");
var el11=document.createTextNode(" ");
var el12=document.createElement("input");
var el13=document.createTextNode(" ");
var el14=document.createElement("input");
var el15=document.createTextNode(" ");
var el16=document.createElement("input");
var el17=document.createTextNode(" ");
var el18=document.createElement("input");
var count=document.getElementById('row-count').value*1;
count++;
document.getElementById('row-count').value=count;
el2.name='data['+count+'][PDCode]';
el2.id='data['+count+'][PDCode]';
el2.type='text';
el2.value='';
el2.size='7';
el2.maxlength='20';
el2.tabindex='1';
el2.onkeyup=function(){ doCallAjax('data['+count+'][PDCode]','data['+count+'][PDName]','data['+count+'][Price]','data['+count+'][Price2]');}
el4.name='data['+count+'][PDName]';
el4.id='data['+count+'][PDName]';
el4.type='text';
el4.value='';
el4.size='18';
el4.readonly='readonly';
el6.name='data['+count+'][Quantity]';
el6.id='data['+count+'][Quantity]';
el6.type='text';
el6.value='';
el6.size='2';
el6.maxlength='5';
el6.tabindex='2';
el6.onkeyup=function(){ chksum('G',count);}
el8.name='data['+count+'][Price]';
el8.id='data['+count+'][Price]';
el8.type='text';
el8.value='';
el8.size='5';
el8.readonly='readonly';
el10.name='data['+count+'][Price2]';
el10.id='data['+count+'][Price2]';
el10.type='text';
el10.value='';
el10.size='5';
el10.readonly='readonly';
el12.name='data['+count+'][PricePerPiece]';
el12.id='data['+count+'][PricePerPiece]';
el12.type='text';
el12.value='';
el12.size='7';
el12.maxlength='10';
el12.tabindex='3';
el12.onkeyup=function(){ chksum('D',count);chksum('E',count);chksum('F',count);}
el14.name='data['+count+'][Dis_baht]';
el14.id='data['+count+'][Dis_baht]';
el14.type='text';
el14.value='';
el14.size='7';
el14.readonly='readonly';
el16.name='data['+count+'][Dis_Percent]';
el16.id='data['+count+'][Dis_Percent]';
el16.type='text';
el16.value='';
el16.size='3';
el16.readonly='readonly';
el18.name='data['+count+'][Amount]';
el18.id='data['+count+'][Amount]';
el18.type='text';
el18.value='';
el18.size='8';
el18.readonly='readonly';
el18.onblur=function() { addbox();return false;}
b.appendChild(el1);
b.appendChild(el2);
b.appendChild(el3);
b.appendChild(el4);
b.appendChild(el5);
b.appendChild(el6);
b.appendChild(el7);
b.appendChild(el8);
b.appendChild(el9);
b.appendChild(el10);
b.appendChild(el11);
b.appendChild(el12);
b.appendChild(el13);
b.appendChild(el14);
b.appendChild(el15);
b.appendChild(el16);
b.appendChild(el17);
b.appendChild(el18);
document.getElementById('data['+count+'][PDCode]').focus();
}
ซึ่งไม่พบปัญหาอะไร
ทีนี้ ผมสร้างส่วนคำนวนขึ้นมา
Code (PHP)
<input type="hidden" id="hidquantity" value="" />
<table width="634" cellspacing="1" border="1" bordercolor="#3DB179">
<tr>
<td width="207" align="center" bgcolor="#A4E4DD">รวม</td>
<td width="33" align="center" bgcolor="#A4E4DD"><input name="sumquantity" id="sumquantity" type="text" value="" size="2" readonly="true" style="background:#A4E4DD;"/>
<td width="313" align="center" bgcolor="#A4E4DD"> </td>
<td width="74" align="center" bgcolor="#A4E4DD"><input name="sumamount" id="sumamount" type="text" value="" size="8" readonly="true" style="background:#A4E4DD;"/></td>
<!-- <td width="333" align="center" bgcolor="#A4E4DD" rowspan="3"> </td> -->
</tr>
<tr>
<td width="207" align="center" bgcolor="#FFFFCC">ผลรวมจากใบขอ</td>
<td width="33" align="center" bgcolor="#FFFFCC"><input name="plazaquantity" type="text" value="" size="2"/>
<td width="313" align="center" bgcolor="#FFFFCC"> </td>
<td width="74" align="center" bgcolor="#FFFFCC"><input name="plazaamount" type="text" value="" size="8"/></td>
</tr>
<tr>
<td width="207" align="center" bgcolor="#A4E4DD">ผลต่าง</td>
<td width="33" align="center" bgcolor="#A4E4DD"><input name="difquantity" type="text" value="" size="2" readonly="true" style="background:#A4E4DD;"/>
<td width="313" align="center" bgcolor="#A4E4DD"> </td>
<td width="74" align="center" bgcolor="#A4E4DD"><input name="difamount" type="text" value="" size="8" readonly="true" style="background:#A4E4DD;"/></td>
</tr>
</table>
ผมอยากจะคำนวน ว่า จำนวนที่ใส่เข้าไป รวมแล้ว เท่าไหร่ ซึ่งก็ได้ผล เท่ากับ 16 แต่เมื่อผมลองไปลบ จำนวนที่เคยใส่ไปแล้วออก แล้ว ใส่ใหม่ (แก้ไขจำนวนเดิมอะครับ) ผมที่ได้คือ ค่ามันเพิ่มขึ้นครับ เช่น จากในรูป รวมได้ 16 แต่พอแก้จาก จำนวน5 เป็น จำนวน10 ผมรวม กลับออกมาได้ 26
พอจะมีแนวทางให้ผมไหมอะครับ
โปรแกรมคำนวนของผม ใช้ javascrip Code นี้ครับ
Code (PHP)
function chksum(chk,count){
var a = document.getElementById('data['+count+'][Quantity]').value
var b = document.getElementById('data['+count+'][Price]').value
var c = document.getElementById('data['+count+'][Price2]').value
var d = document.getElementById('data['+count+'][PricePerPiece]').value
var e = document.getElementById('data['+count+'][Dis_baht]').value
var f = document.getElementById('data['+count+'][Dis_Percent]').value
var g = document.getElementById('data['+count+'][Amount]').value
var h = document.getElementById('hidquantity').value
var i = document.getElementById('sumquantity').value
if(chk=="D"){
if(c=="0.00"){
document.getElementById('data['+count+'][Dis_baht]').value=-((d*1)-(b*1));
document.getElementById('data['+count+'][Dis_baht]').style.backgroundColor = "#A4E4DD";
document.getElementById('data['+count+'][Dis_baht]').readOnly = true;
}else{
document.getElementById('data['+count+'][Dis_baht]').value=(d*1)-(c*1);
document.getElementById('data['+count+'][Dis_baht]').style.backgroundColor = "#A4E4DD";
document.getElementById('data['+count+'][Dis_baht]').readOnly = true;
}
}
if(chk=="E"){
var numf = document.getElementById('data['+count+'][Dis_Percent]').value=100-((d/b)*100);
document.getElementById('data['+count+'][Dis_Percent]').value = parseFloat(numf).toFixed(0)+'%';
document.getElementById('data['+count+'][Dis_Percent]').style.backgroundColor = "#A4E4DD";
document.getElementById('data['+count+'][Dis_Percent]').readOnly = true;
}
if(chk=="F"){
document.getElementById('data['+count+'][Amount]').value=a*1*d;
document.getElementById('data['+count+'][Amount]').style.backgroundColor = "#A4E4DD";
document.getElementById('data['+count+'][Amount]').readOnly = true;
}
if(chk=="G"){
document.getElementById('hidquantity').value=a;
document.getElementById('sumquantity').value=(i*1)+(a*1);
}
}
ถ้ามันยาวไป ก็ขอโทษด้วยจริงๆครับ คิดแนวทางไม่ออกจริงๆ เลยอยากใส่ในส่วนที่คิดว่าน่าจะต้องใช้ให้ช่วยดูอะครับ
ขอบคุณมากๆครับTag : PHP, JavaScript, CakePHP
ประวัติการแก้ไข 2011-03-29 12:55:08 2011-03-29 13:02:35
Date :
2011-03-29 12:06:46
By :
muaeenth99
View :
969
Reply :
2
แทรกรูปใหม่น่ะครับ ผมเห็นเป็นรูป กบถูกแช่แข็งครับ
Date :
2011-03-29 12:49:03
By :
webmaster
ลองอัพรูปภาพใส่อีกเว็บแล้วครับ ไม่ทราบว่า เห็นรึยังครับ
ขอบคุณครับ
Date :
2011-03-29 13:10:02
By :
muaeenth99
Load balance : Server 00