Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ช่วยดูโค้ดหน่อยครับ เวลาเพิ่มแถวแล้วมันไม่ยอมคำนวนให้ครับ



 

ช่วยดูโค้ดหน่อยครับ เวลาเพิ่มแถวแล้วมันไม่ยอมคำนวนให้ครับ

 



Topic : 109774



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์




Code (PHP)
<html>
<head>
<title></title>
</head>
ช่วยดูโค้ดหน่อยครับ เวลาเพิ่มแถวแล้วมันไม่ยอมคำนวนให้ แต่ช่องแรกมันคำนวนออกมาให้ครับ พอกดเพิ่มมาแล้วที่สองเวลาพิมพ์ตัวเลขไปไม่ยอมคำนวนครับ ผิดตรงไหนช่วยด้วยครับ


<body>
<script language="javascript">
function fncCal()
{
	var tot = 0;
	var sum = 0;
	for(i=1;i<=document.form1.hdnLine.value;i++)
	{
		tot = parseInt(eval("document.form1.txtVol1_"+i+".value")) + parseInt(eval("document.form1.txtVol2_"+i+".value"))
		eval("document.form1.txtVol3_"+i+".value="+tot);
		sum = tot + sum;
		document.form1.txtSum.value=sum;
	}
}
</script>

<form action="page.cgi" method="post" name="form1">
<input type="hidden" name="hdnLine" value="20">
<table id="myTbl" width="650" border="1" cellspacing="0" cellpadding="1">
  <tr>
    <td width="335" align="center" bgcolor="#001B35"><font color="#FFFFFF">รายการซ่อม</font></td>
    <td width="96" align="center" bgcolor="#001B35"><font color="#FFFFFF">จำนวน</font></td>
    <td width="91" align="center" bgcolor="#001B35"><font color="#FFFFFF">ราคา/หน่วย</font></td>
    <td width="108" align="center" bgcolor="#001B35"><font color="#FFFFFF">ราคา</font></td>
  </tr>
  <tr class="firstTr">
<td align="center"><input name="data[]" type="text" class="text_data"  size="50" /></td>
    <td align="center"><input name="txtVol[]" id="txtVol1_1" type="text" onBlur="fncCal()"></td>
    <td align="center"><input name="txtVol[]" id="txtVol2_1" type="text" onBlur="fncCal()"></td>
    <td align="center"><input name="txtVol[]" id="txtVol3_1" type="text" onBlur="fncCal()"></td>
  </tr> 
</table>
<br />
<table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="47" align="right">&nbsp;</td>
    <td width="47" align="right">&nbsp;</td>
    <td width="434" align="right">ราคารวม:</td>
    <td width="122" align="center"><input name="txtSum" id="txtSim" type="text"></td>
  </tr>
</table>
<table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"> <button id="addRow" type="button">+</button>  
    <button id="removeRow" type="button">-</button></td>
  </tr>
  <tr>
    <td align="center">
   
    <input type="submit" name="Submit" id="Submit" value="บันทึกงานซ่อม" /></td>
  </tr>
</table>



</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>      
<script type="text/javascript">
$(function(){
	
	$("#addRow").click(function(){
		// ส่วนของการ clone ข้อมูลด้วย jquery clone() ค่า true คือ
		// การกำหนดให้ ไม่ต้องมีการ ดึงข้อมูลจากค่าเดิมมาใช้งาน
		// รีเซ้ตเป็นค่าว่าง ถ้ามีข้อมูลอยู่แล้ว ทั้ง select หรือ input
		$(".firstTr:eq(0)").clone(true) 
		.find("input").attr("value","").end()
		.find("select").attr("value","").end()
		.appendTo($("#myTbl"));
	});
	$("#removeRow").click(function(){
		// // ส่วนสำหรับการลบ
		if($("#myTbl tr").size()>1){ // จะลบรายการได้ อย่างน้อย ต้องมี 1 รายการ
			$("#myTbl tr:last").remove(); // ลบรายการสุดท้าย
		}else{
			// เหลือ 1 รายการลบไม่ได้
			alert("ต้องมีรายการข้อมูลอย่างน้อย 1 รายการ");
		}
	});	
	

});
</script>
</body>

</html>




Tag : PHP, JavaScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-07-07 16:24:11 By : wichasit View : 971 Reply : 14
 

 

No. 1



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เวลาคุณเพิ่ม Row มันไปเพิ่มอีกเทเบิลหนึ่ง แต่คุณคำนวณอยู่อีกเทเบิลหนึ่งครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-07 16:32:31 By : soghband
 


 

No. 2



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


จะต้องเพิ่มตรงไหนเข้าไปครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-07 16:50:39 By : wichasit
 

 

No. 3



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


ดันๆๆ ช่วยด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-07 20:00:55 By : wichasit
 


 

No. 4



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

อุ้ยผิดไม่ใช่ต่างเทเบิล คือไม่ได้กำหนด id ให้ textbox ที่เพิ่มมาใหม่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-07 20:54:31 By : soghband
 


 

No. 5



โพสกระทู้ ( 1,666 )
บทความ ( 0 )



สถานะออฟไลน์


ผิดตรงนี้ครับ

บรรทัด24 <form action="page.cgi" method="post" name="form1">

การใช้กับ javascript ที่มีการเรียก document.formX ต้องประกาศ id ด้วยเพราะ javascriptถ้าจะเรียกค่าอะไรซักอย่างจะเรียกที่ id ไม่ได้เรียกที่ nameดังนั้นปรับเป็น

<form action="page.cgi" method="post" name="form1" id="form1" >
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-07 21:15:49 By : meannerss
 


 

No. 6



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


อ้าง id ไม่ได้ครับ มันเหมือนกันหมดเลย
อ้าง name ที่เป็น array ครับ แต่ name ของคุณก็เหมือนกันอีก

array row 1 ก้จะป็น txtVol[0] [1] [2]
array row 2 ก้จะป็น txtVol[3] [4] [5]

แต่ด้วยที่มันเป็น jquery ผมไม่เป้นครับ ก็แนะนำได้เท่านี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-07 21:17:06 By : Chaidhanan
 


 

No. 7



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-07 21:17:06
รายละเอียดของการตอบ ::
Code (PHP)


ผมจะต้องทำยังไงให้ array ตรง txtVol1_[] ให้มันรันไปเรื่อยๆเมื่อคลิกเพิ่มตารางครับเช่น txtVol1_[0] txtVol2_[0] txtVol3_[0]
เวลาเพิ่มอีกตารางอีกก็จะเป็น txtVol1_[1] txtVol2_[1] txtVol3_[1] แบบนี้อ่าครับ


 <tr class="firstTr">
<td align="center"><input name="data" type="text" class="text_data"  size="50" /></td>
    <td align="center"><input name="unit" id="txtVol1_[]" type="text" onBlur="fncCal()"></td>
    <td align="center"><input name="price" id="txtVol2_[]" type="text" onBlur="fncCal()"></td>
    <td align="center"><input name="price1" id="txtVol3_[]" type="text" onBlur="fncCal()"></td>
  </tr> 


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-08 13:49:36 By : wichasit
 


 

No. 8



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ถือถ้าไม่ใช้ jquery ก็ดูตัวอย่างเอานะครับ

Code (JavaScript)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
.iNum{
	text-align: right;
}
</style>
</head>
<body onload="clearRow(1)">
<script language="javascript" >
function fncCal(){
	var tot = 0;
	var sum = 0;
	var tb=document.getElementById('myTbl');
	var rows=tb.rows;
	var roNum=rows.length-1;
	for(i=1; i<=roNum; i++){
		var amt = rows[i].cells[1].childNodes[0].value;
		var prz = rows[i].cells[2].childNodes[0].value;
		if(amt && prz){
			tot=amt * prz;
			rows[i].cells[3].childNodes[0].value=tot;
			sum += tot;
		}
	}
	document.form1.txtSum.value=sum;
}
function addRow(){
	var tb=document.getElementById('myTbl');
	var rows=tb.rows;
	var roNum=rows.length;
	var row=tb.insertRow(roNum);
	row.className='firstTr';
	row.insertCell(0).innerHTML='<input name="data[]" type="text" class="text_data"  size="50" />';
	row.insertCell(1).innerHTML='<input name="amt[]" type="text" value="0" class="iNum" onblur="fncCal()" />';
	row.insertCell(2).innerHTML='<input name="prz[]" type="text" value="0" class="iNum" onblur="fncCal()" />';
	row.insertCell(3).innerHTML='<input name="tot[]" type="text" value="0" class="iNum" onblur="fncCal()" />';
}
function eraseRow(){
	var tb=document.getElementById('myTbl');
	var rows=tb.rows;
	var roNum=rows.length-1;
	if(roNum>1){
		var tot=rows[roNum].cells[3].childNodes[0].value;
		document.form1.txtSum.value -= tot;
		tb.deleteRow(roNum);
	}else alert('ห้ามลบรายการสุดท้ายได้')
}
function clearRow(idx){
	var tb=document.getElementById('myTbl');
	var rows=tb.rows;
	var roNum=rows.length-1;
	rows[idx].cells[0].childNodes[0].value='';
	rows[idx].cells[1].childNodes[0].value=0;
	rows[idx].cells[2].childNodes[0].value=0;
	rows[idx].cells[3].childNodes[0].value=0;
	document.form1.txtSum.value=0;
}

</script>

<form action="page.cgi" method="post" name="form1">
<table id="myTbl" width="650" border="1" cellspacing="0" cellpadding="1">
<tr>
	<td align="center" bgcolor="#001B35"><font color="#FFFFFF">รายการซ่อม</font></td>
	<td width="90" align="center" bgcolor="#001B35"><font color="#FFFFFF">จำนวน</font></td>
	<td width="90" align="center" bgcolor="#001B35"><font color="#FFFFFF">ราคา/หน่วย</font></td>
	<td width="110" align="center" bgcolor="#001B35"><font color="#FFFFFF">ราคา</font></td>
</tr>
<tr class="firstTr" >
	<td><input name="data[]" type="text" class="text_data"  size="50" /></td>
	<td><input name="amt[]" type="text" onBlur="fncCal()" class="iNum"  /></td>
	<td><input name="prz[]"  type="text" onBlur="fncCal()" class="iNum" /></td>
	<td><input name="tot[]"  type="text" onBlur="fncCal()" class="iNum" /></td>
</tr> 
</table>
<br />
<table width="650" border="0" cellspacing="0" cellpadding="0" >
  <tr>
    <td align="right">ราคารวม&nbsp;:&nbsp;</td>
    <td width="108" align="right"><input name="txtSum" id="txtSim" type="text" style="text-align: right; width: 108px"></td>
  </tr>
</table>
<table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"> <input type="button" onclick="addRow()" value="+" />  
    <input type="button" onclick="eraseRow()" value="-" />
    <input type="button" name="Submit" value="บันทึกงานซ่อม" onclick="this.form.submit()" /></td>
  </tr>
</table>
</form>
</body>

</html>



ประวัติการแก้ไข
2014-07-08 21:29:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-08 21:29:22 By : Chaidhanan
 


 

No. 9



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-08 21:29:22
รายละเอียดของการตอบ ::
ขอบคุณครับ ถ้ามีการเพิ่ม Vat 7% จะต้องเพิ่มส่วนไหนครับ ขอบคุณพี่มากๆครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-08 22:21:09 By : wichasit
 


 

No. 10



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ก็อยู่ที่ว่าจะเอา vat แสดงตรงไหน แสดงแค่หลังผลรวม ทั้งหมดหรือเปล่า ซึ่งส่วนใหญ่ก็จะเป็นอย่างนั้นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-08 22:25:21 By : Chaidhanan
 


 

No. 11



โพสกระทู้ ( 310 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้ jquery เต็มรูปแบบค่ะ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en">
<head>
<title>https://www.thaicreate.com/php/forum/109774.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<script language="javascript">
</script>

<form action="page.cgi" method="post" name="form1">
<input type="hidden" name="hdnLine" value="20">
<table id="myTbl" width="650" border="1" cellspacing="0" cellpadding="1">
<thead>
  <tr>
	<th width="30" align="center" bgcolor="#001B35"><font color="#FFFFFF">No.</font></th>
    <th width="335" align="center" bgcolor="#001B35"><font color="#FFFFFF">รายการซ่อม</font></th>
    <th width="96" align="center" bgcolor="#001B35"><font color="#FFFFFF">จำนวน</font></th>
    <th width="91" align="center" bgcolor="#001B35"><font color="#FFFFFF">ราคา/หน่วย</font></th>
    <th width="108" align="center" bgcolor="#001B35"><font color="#FFFFFF">ราคา</font></th>
  </tr>
  </thead>
  <tbody>
  <tr>
  	<td align="center">1</td>
	<td align="center"><input name="data[]" type="text" size="50" /></td>
    <td align="center"><input name="txtAmount[]" type="text" class='amnt' /></td>
    <td align="center"><input name="txtPrice[]" type="text" class='price' /></td>
    <td align="center"><input name="txtTotal[]" type="text" class='total' readonly /></td>
  </tr> 
  </tbody>
  <tfoot>
  <tr>
    <th colspan="3" align="right">&nbsp;</th>
    <th align="right">ราคารวม:</th>
    <th align="center"><input name="txtSum" id="txtSum" type="text" /></th>
  </tr>
  <tr>
    <th colspan="3" align="right">&nbsp;</th>
    <th align="right">VAT 7%</th>
    <th align="center"><input name="txtVAT" id="txtVAT" type="text" /></th>
  </tr>    
  </tfoot>
</table>
<br />
<table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"> <button id="addRow" type="button">+</button>  
    <button id="removeRow" type="button">-</button></td>
  </tr>
  <tr>
    <td align="center">   
    <input type="submit" name="Submit" id="Submit" value="บันทึกงานซ่อม" /></td>
  </tr>
</table>
</form>
<script src="http://code.jquery.com/jquery-latest.js"></script>      
<script type="text/javascript">
$(function(){
	
	$("#addRow").click(function(){
		var cloning = $("#myTbl").find("tbody tr:first").html();
		cloning = '<tr>'+cloning+'</tr>';
		
		$("#myTbl tbody").append(cloning);
		
		// เเพิ่มลำดับแต่ละแถว
		$("#myTbl tbody tr").each(function(indx){
			$("td:first",this).text(indx+1);
		});
	});
	$("#removeRow").click(function(){
		// // ส่วนสำหรับการลบ
		if($("#myTbl tbody tr").size()>1){ // จะลบรายการได้ อย่างน้อย ต้องมี 1 รายการ
			$("#myTbl tbody tr:last").remove(); // ลบรายการสุดท้าย
		}else{
			// เหลือ 1 รายการลบไม่ได้
			alert("ต้องมีรายการข้อมูลอย่างน้อย 1 รายการ");
		}
	});	
	
	$("#myTbl tbody").on("keyup","input.amnt ,input.price",function(){
		
		var amnt = $(this).parents('tr').find('input.amnt').val(),
			price = $(this).parents('tr').find('input.price').val(),
			total = parseFloat(amnt)*parseFloat(price);
		var	gtotal = 0;
		
		if(!isNaN(total))
			$(this).parents('tr').find('input.total').val(total);

		$("#myTbl tbody tr").each(function(){
			gtotal = gtotal + parseFloat($(this).find('input.total').val());
		});

		if(!isNaN(gtotal)){
			$("#txtSum").val(gtotal);
			$("#txtVAT").val(gtotal*7/100);
		}
	});
});
</script>
</body>

</html>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 00:01:22 By : survivor
 


 

No. 12



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : survivor เมื่อวันที่ 2014-07-09 00:01:22
รายละเอียดของการตอบ ::
จากบทความนี้ เอา jquery 2.1 มาลงแล้วนะ 5555 ใช้ง่ายดี เหมาะจะทำ โปรแกรมใหญ่ๆ อย่างมาก
แต่ถ้าหน้าเพจเล็ก ก็ไม่น่าใช้เท่าไหร่เพราะมันเปลือง bandwitch (2.1.1 83k แน่ะ ถ้าเปิดหลายหน้าแย่เลย)
เหมาะที่จะทำงานแบบ Ajax ไม่ต้องเปลี่ยน url

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 09:08:05 By : Chaidhanan
 


 

No. 13



โพสกระทู้ ( 310 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-09 09:08:05
รายละเอียดของการตอบ ::
ถ้าเราใช้ JQ. เกินความจำเป็นระบบงานจะช้าอย่างเห็นได้ชัดเลยค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 12:02:38 By : survivor
 


 

No. 14



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ที่มันช้าเพราะเราไม่ได้ clear object ที่ไม่ได้ใช้ ออกมั้งครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 12:11:47 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยดูโค้ดหน่อยครับ เวลาเพิ่มแถวแล้วมันไม่ยอมคำนวนให้ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่