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 > สอบถามเลือก checkbox แล้้วค่า Value เข้าไปคำนวนแล้วค่าทั้งหมดเข้า text box



 

สอบถามเลือก checkbox แล้้วค่า Value เข้าไปคำนวนแล้วค่าทั้งหมดเข้า text box

 



Topic : 135111



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



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




ผมมีตัวอย่างของที่ผมตามหัวข้อดังนี้
Code (PHP)
<form name="frm">
<p><input type="checkbox" value="1" onclick="tick(frm)" /> 1</p>
<p><input type="checkbox" value="2" onclick="tick(frm)" /> 2</p>
<p><input type="checkbox" value="3" onclick="tick(frm)" /> 3</p>
<p><input type="checkbox" value="4" onclick="tick(frm)" /> 4</p>
<input type="text" name="sum" value="0" />
</form>
<script type="text/javascript">
function tick( frm )
{
  var sum=0;
  for (var i = 0; i < frm.elements.length; i++) {
    var chk = frm.elements[i];
    if ( chk.type == 'checkbox' && chk.checked )
    {
      sum += parseFloat( chk.value );
    };
  };
  frm.sum.value = sum;
}
</script>

ถ้าแบบนี้มันคำนวนได้
แต่ปัญหาคือพอเพิ่มเข้าไปอีกชุดใน form เดียวกัน มันไม่อ่านชุดใหม่
Code (PHP)
<form name="frm">
<p><input type="checkbox" id="checkbox" value="1" onclick="tick(frm)" /> 1</p>
<p><input type="checkbox" id="checkbox" value="2" onclick="tick(frm)" /> 2</p>
<p><input type="checkbox" id="checkbox" value="3" onclick="tick(frm)" /> 3</p>
<p><input type="checkbox" id="checkbox" value="4" onclick="tick(frm)" /> 4</p>
<input type="text" name="sum" id="sum" value="0" />
<hr>
<p><input type="checkbox" id="checkbox1" value="1" onclick="tick1(frm1)" /> 1</p>
<p><input type="checkbox" id="checkbox1" value="2" onclick="tick1(frm1)" /> 2</p>
<p><input type="checkbox" id="checkbox1" value="3" onclick="tick1(frm1)" /> 3</p>
<p><input type="checkbox" id="checkbox1" value="4" onclick="tick1(frm1)" /> 4</p>
<input type="text" name="sum1" id="sum1" value="0" />
</form>
<script type="text/javascript">
function tick( frm )
{
  var sum=0;
  for (var i = 0; i < frm.elements.length; i++) {
    var chk = frm.elements[i];
    if ( chk.type == 'checkbox' && chk.checked )
    {
      sum += parseFloat( chk.value );
    };
  };
  frm.sum.value = sum;
}

function tick1(frm1)
{
  var sum1=0;
  for (var i1 = 0; i1 < frm1.elements.length; i1++) {
    var chk1 = frm1.elements[i1];
    if ( chk1.type == 'checkbox1' && chk1.checked )
    {
      sum1 += parseFloat( chk.value );
    };
  };
  frm1.sum1.value = sum1;
}
</script>

แก้ยังไงครับ ขอบพระคุณหลาย



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2020-04-12 22:35:05 By : yutthanagorn View : 1476 Reply : 5
 

 

No. 1



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



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


Code (JavaScript)
tick1(frm1)

frm1 คือตัวอ้างอิง มันไม่มี อ้างไม่ถูก หาไม่เจอ มันก็ไม่คำณวนอะไรได้






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-04-12 22:47:33 By : mr.v
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2020-04-12 22:47:33
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......


ต้องแก้เช่นไรให้มันคำนวนแยกได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-04-12 22:54:05 By : yutthanagorn
 

 

No. 3



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



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


ก็แยกฟอร์มไปสิครับ คุณต้องอ่านโค้ดให้เข้าใจด้วย มันอ้างอิง object frm1 ตัวอย่างแรก frm มันอยู่บนแท็ก <form> ก็แยกฟอร์มออกไปแล้วตั้งชื่อให้มันตรง

อีกอย่าง เดี๋ยวนี้ attribute name สำหรับอื่นๆที่ไม่ใช่ input เขาเลิกใช้หมดแล้ว ให้ใช้ id แทน และ id จะต้องไม่ซ้ำ


ประวัติการแก้ไข
2020-04-13 00:05:26
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-04-12 22:56:04 By : mr.v
 


 

No. 4



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



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


ได้ตามต้องการละครับ ขอบพระคุณมากๆ

Code (PHP)
<html>
<head>
<title></title>
</head>
<body>
<script language="javascript">
function fnccheck(){
	var t1;
	var t2;	
	var sum;
	if(document.form1.chk1.checked == true){
		t1=parseFloat(document.form1.chk1.value);
	}else{	
		t1=null;
	}
	if(document.form1.chk2.checked == true){
		t2=parseFloat(document.form1.chk2.value);
	}else{	
		t2=null;	
	}	
	sum=t1+t2;
	document.form1.total.value=sum;
}
</script>
<script language="javascript">
function fnccheck1(){
	var t1;
	var t2;	
	var sum;
	if(document.form1.chk3.checked == true){
		t1=parseFloat(document.form1.chk3.value);
	}else{	
		t1=null;
	}
	if(document.form1.chk4.checked == true){
		t2=parseFloat(document.form1.chk4.value);
	}else{	
		t2=null;	
	}	
	sum=t1+t2;
	document.form1.total1.value=sum;
}
</script>
<form action="page.cgi" method="post" name="form1">
<input name="chk1" type="checkbox" id="chk1" value="100" OnClick="JavaScript:return fnccheck();">100
<br>
<input name="chk2" type="checkbox" id="chk2" value="200" OnClick="JavaScript:return fnccheck();">200
<br>
<input type="text" name="total" id="total"/>
<hr>
<input name="chk3" type="checkbox" id="chk3" value="1000" OnClick="JavaScript:return fnccheck1();">1000
<br>
<input name="chk4" type="checkbox" id="chk4" value="2000" OnClick="JavaScript:return fnccheck1();">2000
<br>
<input type="text" name="total1" id="total1"/>
</form>
</body>
</html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-04-12 23:04:27 By : yutthanagorn
 


 

No. 5



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



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


เขียนแบบนี้ ถ้าเพิ่มหลายๆ ชุด มียาวพรืดเหรอครับ เพิ่ม พารามิเตอร์ เข้าไปดีไหม

OnClick="fnccheck(0);"
OnClick="fnccheck(1);"

และก็โค๊ด คห แรก ดีกว่า คห 4 นะครับ เพราะใช้ element ในการค้นหา
เวลา กำหนดชุด เราก็สามารถใส่ attribute เพื่อแยกรายการได้
Code (JavaScript)
<form name="frm">
  <input type=checkbox for="1" value=1 onclick="chkclick('1')" >
  <input type=checkbox for="1" value=2 onclick="chkclick('1')" >
  <input type=checkbox for="1" value=3 onclick="chkclick('1')" >
  <input type=checkbox for="2" value=5 onclick="chkclick('2')"  >
  <input type=checkbox for="2" value=6 onclick="chkclick('2')" >
  <input type=checkbox for="2" value=7 onclick="chkclick('2')" >
  
</form>
<script>
function chkclick(op){
  // ค้นหา element โดยใช้ attribute จาก parameter เก็บไว้ในตัวแปร
  var chk = frm.getElementsByAttribute('for', op); 
  var i=0,j=0;
  for( i; i<chk.length;i++){
    if( chk[i].checked ) j+=chk.value*1;
  }
  alert(j);
}


ปล. ตัวอย่างนะครับ ไม่ใช่ สิ่งที่คุณต้องการ แค่เป็นตัวอย่าง algorithm ต้องอ่านและประยุกต์ใช้เอาเอง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-04-13 07:34:48 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเลือก checkbox แล้้วค่า Value เข้าไปคำนวนแล้วค่าทั้งหมดเข้า text box
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่