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,027

HOME > PHP > PHP Forum > รบกวนขอความช่วยเหลือครับ ในหน้าเตรียมพิมพ์ ทำอย่างไรให้ ค่า 0.00 และ NaN แสดงว่างเปล่า (" ") ต้องเพิ่มเติม script อย่างไรครับ



 

รบกวนขอความช่วยเหลือครับ ในหน้าเตรียมพิมพ์ ทำอย่างไรให้ ค่า 0.00 และ NaN แสดงว่างเปล่า (" ") ต้องเพิ่มเติม script อย่างไรครับ

 



Topic : 123934



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



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




รบกวนขอความช่วยเหลือครับ ในหน้าเตรียมพิมพ์ ทำอย่างไรให้ ค่า 0.00 และ NaN แสดงว่างเปล่า (" ") ต้องเพิ่มเติม script อย่างไรครับ

เนื่องจากในหน้านี้ต้อง เอาค่าคูณ จำนวน% และต้องนำมาบวก -ลบกัน ถ้าจำนวนในหมวดนั้นไม่มี (ค่า "" ) ในช่อง Commission และ NetTotal จะแสดงค่าเป็น 0.00 และ NaN (ตามรูป)
ทำอย่างไร จะให้แสดงเป็นว่างเปล่า ครับ (ผมใช้ Javascript ทำการคำนวณ) ต้องเพิ่มเติมหรือเปลี่ยนแปลงอย่างไร ขอแนวทางด้วยครับ
ขอบคุณมากครับ


nan

code php



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-07-20 17:21:13 By : panya@ots View : 1619 Reply : 17
 

 

No. 1



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



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


Code (JavaScript)
	 var b;//Hpercent *********
       var cash;
       var c3;//com_Cash
		if(document.form1.Cash.value == ""){ 
			cash=null;
		}else{
			 cash=parseFloat(document.form1.Cash.value);
		}
		if(document.form1.Hpercent.value == ""){
			 b=null;
		}else{
			 b=parseFloat(document.form1.Hpercent.value);
		}
		if(document.form1.com_Cash.value == ""){
			 c3=null;
		}else{
			 c3=parseFloat(document.form1.com_Cash.value);
		}


ผมว่าน่าจะผิดช่วงนี้ละครับ.. ค่า document.form1.Cash.value == "" เป็นจากค่าว่างมาเป็น cash=0 จะดีกว่าครับ
เพราะว่าค่า null เอาไปใช้กับฟังชั่น parseFloat() มันออกมาผิดหลักคำนวนครับ

Code (JavaScript)
  var Sumcash;
		Sumcash=(cash*b)/100;
		
		document.form1.com_Cash.value=(Sumcash.toFixed(2));
		
  var Sumcash2;
		Sumcash2=(cash*b)/100;
		document.form1.com_Cash2.value=addCommas(Sumcash2.toFixed(2));
		
  var Sumcash3;
		cash=parseFloat(document.form1.Cash.value);
		c3=parseFloat(document.form1.com_Cash.value);
		Sumcash3=cash-c3;
		document.form1.net_Cash.value=(Sumcash3.toFixed(2));
		
  var Sumcash4;
		cash=parseFloat(document.form1.Cash.value);
		c3=parseFloat(document.form1.com_Cash.value);
	
	     Sumcash4=cash-c3;
	     document.form1.net_Cash2.value=addCommas(Sumcash4.toFixed(2));

ตัวแปรพวกนี้เลยคำนวนออกมาเป็น Nan






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 01:04:13 By : Suthee2522
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : Suthee2522 เมื่อวันที่ 2016-07-21 01:04:13

ขอบคุณครับ

เปลี่ยนเป็น "0" แล้ว ก็ยังคงแสดงดป็น NaN เหมือนเดิมครับ


var b;//Hpercent *********
var cash;
var c3;//com_Cash
if(document.form1.Cash.value == "0"){
cash=null;
}else{
cash=parseFloat(document.form1.Cash.value);
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 06:21:20 By : panya@ots
 

 

No. 3



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

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


ผมแนะนำว่า นำเฉพาะส่วนที่มีปัญหามาโพสดีกว่าครับ โพสcodeมาทั้งหมดนั่งไล่มันเสียเวลา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 08:14:53 By : dudesaranyu
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : dudesaranyu เมื่อวันที่ 2016-07-21 08:14:53
ขอบคุณครับ
ปัญหาคือ ไม่ต้องการให้ค่า NaN แสดง (ในหน้านี้เพื่อจะสั่งพิมพ์) ครับ
ต้องมีการเขียนเพิ่มใน script หรือเปล่าครับ.....ขอคำแนะนำด้วยครับ

Code (PHP)
<script language="javascript">
   function addCommas(nStr)
			{
				nStr += '';
				x = nStr.split('.');
				x1 = x[0];
				x2 = x.length > 1 ? '.' + x[1] : '';
				var rgx = /(\d+)(\d{3})/;
				while (rgx.test(x1)) {
					x1 = x1.replace(rgx, '$1' + ',' + '$2');
				}
				return x1 + x2;
			}

			function chkNum(ele)
			{
				var num = parseFloat(ele.value);
				ele.value = addCommas(num.toFixed(2));
			}

	function getpercent( ){
		
		var b;//Hpercent *********
		var credit;
		var c;//com_Credit
		if(document.form1.Credit.value == ""){ 
			credit=null;
		}else{
			 credit=parseFloat(document.form1.Credit.value);
		}
		if(document.form1.Hpercent.value == ""){
			 b=null;
		}else{
			 b=parseFloat(document.form1.Hpercent.value);
		}
		if(document.form1.com_Credit.value == ""){
			 c=null;
		}else{
			 c=parseFloat(document.form1.com_Credit.value);
		}
		
  var Sumcredit;
		Sumcredit=(credit*b)/100;
		document.form1.com_Credit.value=(Sumcredit.toFixed(2));
		
  var Sumcredit2;
		Sumcredit2=(credit*b)/100;
		document.form1.com_Credit2.value=addCommas(Sumcredit2.toFixed(2));
		
  var Sumcredit3;
		credit=parseFloat(document.form1.Credit.value);
		c=parseFloat(document.form1.com_Credit.value);
		Sumcredit3=credit-c;
	    document.form1.net_Credit.value=(Sumcredit3.toFixed(2));
		
  var Sumcredit4;
		credit=parseFloat(document.form1.Credit.value);
		c=parseFloat(document.form1.com_Credit.value);
	
	Sumcredit4=credit-c;
	document.form1.net_Credit2.value=addCommas(Sumcredit4.toFixed(2));
////////////////////////////////////////////////////////////////////////////////////
       var b;//Hpercent *********
       var room;
       var c2;//com_Room
		if(document.form1.Room.value == ""){ 
			room=null;
		}else{
			 room=parseFloat(document.form1.Room.value);
		}
		if(document.form1.Hpercent.value == ""){
			 b=null;
		}else{
			 b=parseFloat(document.form1.Hpercent.value);
		}
		if(document.form1.com_Room.value == ""){
			 c2=null;
		}else{
			 c2=parseFloat(document.form1.com_Room.value);
		}
		
  var Sumroom;
		Sumroom=(room*b)/100;
		document.form1.com_Room.value=(Sumroom.toFixed(2));
		
  var Sumroom2;
		Sumroom2=(room*b)/100;
		document.form1.com_Room2.value=addCommas(Sumroom2.toFixed(2));
		
  var Sumroom3;
		room=parseFloat(document.form1.Room.value);
		c2=parseFloat(document.form1.com_Room.value);
		Sumroom3=room-c2;
	    document.form1.net_Room.value=(Sumroom3.toFixed(2));
		
  var Sumroom4;
		room=parseFloat(document.form1.Room.value);
		c2=parseFloat(document.form1.com_Room.value);
	
	     Sumroom4=room-c2;
	     document.form1.net_Room2.value=addCommas(Sumroom4.toFixed(2));
		 /////////////////////////////////////////////////////////////////
	 var b;//Hpercent *********
       var cash;
       var c3;//com_Cash
		if(document.form1.Cash.value == ""){ 
			cash=null;
		}else{
			 cash=parseFloat(document.form1.Cash.value);
		}
		if(document.form1.Hpercent.value == ""){
			 b=null;
		}else{
			 b=parseFloat(document.form1.Hpercent.value);
		}
		if(document.form1.com_Cash.value == ""){
			 c3=null;
		}else{
			 c3=parseFloat(document.form1.com_Cash.value);
		}
		
  var Sumcash;
		Sumcash=(cash*b)/100;
		document.form1.com_Cash.value=(Sumcash.toFixed(2));
		
  var Sumcash2;
		Sumcash2=(cash*b)/100;
		document.form1.com_Cash2.value=addCommas(Sumcash2.toFixed(2));
		
  var Sumcash3;
		cash=parseFloat(document.form1.Cash.value);
		c3=parseFloat(document.form1.com_Cash.value);
		Sumcash3=cash-c3;
		document.form1.net_Cash.value=(Sumcash3.toFixed(2));
		
  var Sumcash4;
		cash=parseFloat(document.form1.Cash.value);
		c3=parseFloat(document.form1.com_Cash.value);
	
	     Sumcash4=cash-c3;
	     document.form1.net_Cash2.value=addCommas(Sumcash4.toFixed(2));
}
</script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 08:50:55 By : panya@ots
 


 

No. 5



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



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

ปกติถ้าไม่ให้ผิดพลาด ช่องไหนว่างก็ให้กำหนดเป็น 0 ก่อนคำนวณ
หรือถ้าเป็นการ คูณ ก็กำหนดให้ช่องไหนว่างก็เป็น 0 ไปเลยโดยไม่ต้องไปถึงส่วนคำนวณครับ

if else ตรวจสอบก่อนการคำนวณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 08:57:08 By : {Cyberman}
 


 

No. 6



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

Code รบกวนเอาลงเฉพาะส่วนที่มีปัญหานะครับ เป็นหลายร้อยบรรทัด เดียวมันจะเป็นขยะ Table จะบวมด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 09:36:32 By : mr.win
 


 

No. 7



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

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


ตอบความคิดเห็นที่ : 4 เขียนโดย : panya@ots เมื่อวันที่ 2016-07-21 08:50:55
รายละเอียดของการตอบ ::
ลองเปลี่ยน คำว่า null ใน javascript ทั้งหมดให้เป็น 0 ดูครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 09:58:43 By : dudesaranyu
 


 

No. 8



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



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


ผมหมายถึงให้เปลี่ยนจาก cash=null ให้เป็น cash=0 อะครับ ขอโทษด้วยทีทำให้เข้าใจผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 10:11:44 By : Suthee2522
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : dudesaranyu เมื่อวันที่ 2016-07-21 09:58:43
ขอบคุณครับ แต่ยังเหมือนเดิมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 10:20:48 By : panya@ots
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : mr.win เมื่อวันที่ 2016-07-21 09:36:32
ขอโทษด้วยครับ ไม่รู้จริงๆครับ คราวหน้าจะทำตามคำแนะนำครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 10:22:51 By : panya@ots
 


 

No. 11



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



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

เอาตรง if ของผมไปประยุกต์ดูได้เปล่าครับ

<script type="text/javascript">
function sum(){
document.getElementById('result').value = parseInt(document.getElementById('fm3').value)+parseInt(document.getElementById('fm4').value);
if((document.getElementById('input1').value)=='')
{document.getElementById('result').value=''}
}
</script>

อันนี้ผมเอาไว้บวกเลข
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 10:25:09 By : benzsara
 


 

No. 12



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : Suthee2522 เมื่อวันที่ 2016-07-21 10:11:44
รายละเอียดของการตอบ ::
เปลี่ยนแบบนี้ ยังเหมือนเดิม ครับ

var b;//Hpercent *********
var cash;
var c3;//com_Cash
if(document.form1.Cash.value == ""){
cash=0;
}else{
cash=parseFloat(document.form1.Cash.value);
}
if(document.form1.Hpercent.value == ""){
b=0;
}else{
b=parseFloat(document.form1.Hpercent.value);
}
if(document.form1.com_Cash.value == ""){
c3=0;
}else{
c3=parseFloat(document.form1.com_Cash.value);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 10:32:16 By : panya@ots
 


 

No. 13



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

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


ตอบความคิดเห็นที่ : 9 เขียนโดย : panya@ots เมื่อวันที่ 2016-07-21 10:20:48
รายละเอียดของการตอบ ::
ผมไม่แน่ใจว่าคุณเอาช่องไหนมาคำนวนกันบ้างนะครับ แต่เห็นว่ามี code เพิ่ม comma เข้าไปใน textbox ในการคำนวนเพื่อหาผลรวมอีกครั้ง ควรตัด comma ออกก่อนนะครับ ยกตัวอย่าง
Code (PHP)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script language="javascript">
    $(document).ready(function(){
        
        var num="2,300.00";
        var num2="100.10";
        
        var repnum=num.replace(",",""); // replace จะได้ 2300.00

        alert(parseFloat(repnum)+parseFloat(num2));
    });
</script>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 10:45:06 By : dudesaranyu
 


 

No. 14



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



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


code comma ไม่ได้เอามาคำนวณ เอาไว้แสดงเพื่อพิมพ์ ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 11:01:40 By : panya@ots
 


 

No. 15



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

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


ตอบความคิดเห็นที่ : 14 เขียนโดย : panya@ots เมื่อวันที่ 2016-07-21 11:01:40
รายละเอียดของการตอบ ::
พิมพ์เข้าไป comma มันก็อยู่ใน textbox แล้วคุณดึงจาก textbox มาคำนวนมั้ย ถ้านำมาคำนวน มันก็ยังอยู่
หรือรอคำตอบจากท่านอื่นดูครับ



ประวัติการแก้ไข
2016-07-21 11:06:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 11:05:31 By : dudesaranyu
 


 

No. 16



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



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


จากที่เดาๆ นะครับ :) งงกับคัวแปลครับ 1 2 3 คืออะไร

form comiision ของ cash
ที่เป็น 0.00 เพราะ
Code
document.form1.com_Cash.value=(Sumcash.toFixed(2));

อยากให้เป็นค่าว่างลองเช็ค ค่าจาก Sumcash ก่อนครับถ้า ไม่ใช่ตัวเลขมากกว่า 0 ค่อย toFixed

เช่น

Code
if(Sumcash > 0){
document.form1.com_Cash.value="";
}else{
document.form1.com_Cash.value=(Sumcash.toFixed(2));
}


ส่วนค่า NaN
เดาเหมือนกัน หากค่าได้มาจาก ตรงนี้
Code
document.form1.net_Cash2.value=addCommas(Sumcash4.toFixed(2));


อาจจะมาจาก addCommas() แนะนำว่าลอง เช็คค่า ก่อนส่งเข้า addCommas กับหลังส่งเข้า addCommas ดูครับ

อาจจะต้อง กรองข้อมูลก่อนส่งเข้า addCommas ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 12:07:17 By : afterdead
 


 

No. 17



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



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


ตอบความคิดเห็นที่ : 11 เขียนโดย : benzsara เมื่อวันที่ 2016-07-21 10:25:09
รายละเอียดของการตอบ ::
..ขอบคุณครับ คุณ benzsara

ผมเอาไปเพิ่มตามนี้ได้ผลตามต้องการ ครับ
var Sumcash;
Sumcash=(cash*b)/100;
document.form1.com_Cash.value=(Sumcash.toFixed(2));

var Sumcash2;
Sumcash2=(cash*b)/100;
document.form1.com_Cash2.value=addCommas(Sumcash2.toFixed(2));
if(document.form1.Cash.value=='')
{document.form1.com_Cash2.value=''};
var Sumcash3;
cash=parseFloat(document.form1.Cash.value);
c3=parseFloat(document.form1.com_Cash.value);
Sumcash3=cash-c3;
document.form1.net_Cash.value=(Sumcash3.toFixed(2));
if(document.form1.Cash.value=='')
{document.form1.net_Cash.value=''};


var Sumcash4;
cash=parseFloat(document.form1.Cash.value);
c3=parseFloat(document.form1.com_Cash.value);
Sumcash4=cash-c3;
document.form1.net_Cash2.value=addCommas(Sumcash4.toFixed(2));
if(document.form1.Cash.value=='')
{document.form1.net_Cash2.value=''};
}
รูปแบบตอนสั่งพิมพ์ ได้เป็นค่า ว่าง ตามต้องการครับ
ok


ประวัติการแก้ไข
2016-07-21 12:16:21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-21 12:15:22 By : panya@ots
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนขอความช่วยเหลือครับ ในหน้าเตรียมพิมพ์ ทำอย่างไรให้ ค่า 0.00 และ NaN แสดงว่างเปล่า (" ") ต้องเพิ่มเติม script อย่างไรครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่