|
|
|
ขอคำแนะนำ หรือตัวอย่าง เกี่ยวกับ การ บวกลบ แบบตารางทีครับ ลบ row เดียวแล้ว จะกระทบแถวทั้งหมด |
|
|
|
|
|
|
|
อันนี้ ตัวอย่าง row_detail
Code (JavaScript)
<tr id='row_1'><td></td> ................<td onclick="func_erase('row_1') >ลบ</td></tr>
อันนี้ตัวอย่าง row_total
Code (JavaScript)
<tr id='row_total'><td>total</td> ................<td></td></tr>
Code (JavaScript)
<script language="javascript">
Number.prototype.format = function(n, x) {
var re = '\\d(?=(\\d{' + (x || 3) + '})+' + (n > 0 ? '\\.' : '$') + ')';
return this.toFixed(Math.max(0, ~~n)).replace(new RegExp(re, 'g'), '$&,');
};
//1234..format(); // "1,234"
//12345..format(2); // "12,345.00"
//123456.7.format(3, 2); // "12,34,56.700"
//123456.789.format(2, 4); // "12,3456.79"
function func_erase(id){
var row_detail=document.getElementById(id);
var row_total=document.getElementById('row_total');
var i=4; // start columns
var j=11; // end columns
var c = row_total.cells;
var am;
for(i ; i<=j; i++){
am=parseInt(c[i].innerHTML.replace(/\,/g, ''));
tl=parseInt(c[i].innerHTML.replace(/\,/g, ''));
bal=tl - am;
c[i].innerHTML=bal.format();
}
row_detail.parentNode.removeChild(row_detail);
}
</script>
|
ประวัติการแก้ไข 2014-08-13 13:43:15 2014-08-13 13:44:26
|
|
|
|
Date :
2014-08-13 13:42:02 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันต้องไปอัพเดท ใน db ด้วยครับ อัพเดท 7 คอลัม คือ
โอนไป ส่งคืน ทบ ขอใช้ ผูกพัน เบิกจ่าย คงเหลือ
จาก แถวที่ลบ ออกครับ มันจะกระทบ คงเหลือแถวถัดลงมาหมดเลยครับถ้าลบแถว ใดๆออก
|
|
|
|
|
Date :
2014-08-15 12:02:23 |
By :
kanokpong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ ตัวอย่าง row_detail
Code (PHP)
$id=$result_from_query_fetch_assoc['id']; // คิวรี่เอาเองนะครับแค่ตัวอย่างสร้าง TR
// เอา $id ไปใส่ใน id ของ TR
echo "<tr id='row_$id'><td></td> ................<td onclick="func_erase('row_1') >ลบ</td></tr>";
Code (JavaScript)
<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript">
Number.prototype.format = function(n, x) {
var re = '\\d(?=(\\d{' + (x || 3) + '})+' + (n > 0 ? '\\.' : '$') + ')';
return this.toFixed(Math.max(0, ~~n)).replace(new RegExp(re, 'g'), '$&,');
};
//1234..format(); // "1,234"
//12345..format(2); // "12,345.00"
//123456.7.format(3, 2); // "12,34,56.700"
//123456.789.format(2, 4); // "12,3456.79"
function func_erase(id){
var row_detail=document.getElementById(id);
var row_total=document.getElementById('row_total');
var i=4; // start columns
var j=11; // end columns
var c = row_total.cells;
var am;
for(i ; i<=j; i++){
am=parseInt(c[i].innerHTML.replace(/\,/g, ''));
tl=parseInt(c[i].innerHTML.replace(/\,/g, ''));
bal=tl - am;
c[i].innerHTML=bal.format();
}
row_detail.parentNode.removeChild(row_detail);
$.ajax({ url:"eraserec.php", type: 'POST', data: { id: id }}); // เพิ่ม ajax ไปลบ database ใน server
}
</script>
|
|
|
|
|
Date :
2014-08-15 12:13:21 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมกลับไปอ่านโจทย์ ใหม่พอสรุปได้ว่า
ถ้าข้อมูลที่ ที่นำมาโชว์ ดึงมาจาก table ทั้งหมด โดยไม่มีการคำนวณจาก php เลย ก็คงทำยากหน่อยนะครับ
แต่ถ้าใช้การคำนวณด้วยก็ง่ายหน่อย
คือ table ควรจัดเก็บแบบนี้ครับ
1 ตาราง งบรับ ของแต่ละงบ
2 ตาราง จ่าย ของแต่ละงบ
แล้วนำมาบวกลบกัน เพื่อแสดงรายงานครับ
คือถ้ามันผิด หรือต้อง แก้ไข ก็จะไม่กระทบกับข้อมูลอื่นๆ
|
|
|
|
|
Date :
2014-08-15 12:33:58 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|