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 > พี่ค่ะ รบกวนถามเรื่อง textbox หลาย textbox อีกสักนิดค่ะ คือไม่อยากไห้เกินค่าที่มีอยู่



 

พี่ค่ะ รบกวนถามเรื่อง textbox หลาย textbox อีกสักนิดค่ะ คือไม่อยากไห้เกินค่าที่มีอยู่

 



Topic : 096972



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



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




หนูลองประยุกต์จากที่พี่ thep ทำอันก่อนให้ แต่ไม่สามารถทำได้จริงๆ ลองแก้นู้นแก้นี้แต่กลับแย่กว่าเดิม(เลยขอแปะโค็ดที่พี่ thep ทำให้ครั้งก่อน) ไม่มีที่พึ่งจริงๆ หนูขอโทษที่ต้องรบกวนพี่ๆอีกครั้งนะค่ะ เกรงใจจัง
คือตอนนี้สามารถเเจ้งเตือนได้แล้วเมื่อใส่เกินไปร้อยเปอร์เซ็น สมมต ในช่องที่ 1 พอใส่ 102 มันก้อจะแจ้งเตือนขึ้นมา แต่อยากให้พอแจ้งว่าเกินร้อยปุ้บก้ออยากให้ค่าใน ช่องที่ 1 เป็น 100 และอีกปัญหาคือ ช่องที่ 2 สมมติ ช่องที่ 2 มีเงินอยู่ 1,666.67 แต่มันเช็คตั้งแต่ตัวแรกเลย อย่างเราใส่ 3 มันก้อแจ้งแล้วว่าเกิน ทั้งๆที่เพิ่งใส่แค่ตัวแรก
ป

Code (PHP)
<?php

$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("household");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<fieldset>
<legend align="center">จัดสรรรายจ่ายย้อนหลังในรอบ 3 เดือน</legend>
<p align="center"><? //include ("sum_amount.php");?>
<p align="center">
<table width="994" height="109" border="1" align="center">
<tr>
<td width="60" rowspan="2" align="center" valign="middle">ลำดับที่</td>
<td width="159" rowspan="2" align="center" valign="middle">รายการรายจ่าย</td>
<td height="23" colspan="3" align="center" valign="middle">รายจ่ายในรอบ 3 เดือน</td>
<td width="143" rowspan="2" align="center" valign="middle">เฉลี่ยในรอบ 3 เดือน</td>
<td width="138" rowspan="2" align="center" valign="middle">เปอร์เซนต์<br />
ที่ต้องการลด</td>
<td width="138" rowspan="2" align="center" valign="middle">รายจ่ายต่อเดือน</td>
</tr>
<tr>
<td width="118" align="center" valign="middle">&nbsp;</td>
<td width="118" align="center" valign="middle">&nbsp;</td>
<td width="118" height="23" align="center" valign="middle">&nbsp;</td>
</tr>
<? $b=1;
$table="select distinct Out_Type_ID from outcome WHERE Mem_ID LIKE '".$_SESSION['Mem_ID']."' ";
$table1=mysql_query($table);
while($table3=mysql_fetch_assoc($table1)){

$a="select * from outcome_type WHERE Out_Type_ID LIKE '".$table3['Out_Type_ID']."'";
$a1=mysql_query($a);
$a2 = mysql_fetch_array($a1);	
?>

<tr>
<td height="27" align="center"><? echo $b; ?></td>
<td align="center"><? echo $a2['Out_Type_Name'];?></td>
<td align="right"><? 
$ttt="SELECT SUM(Out_Amount) AS Sum_Amount FROM outcome WHERE Out_Date BETWEEN '".date('Y-m-d',strtotime('-3 month'))."' AND '".date('Y-m-d',strtotime('-2 month'))."' AND Out_Type_ID LIKE '".$table3['Out_Type_ID']."' AND Mem_ID LIKE '".$_SESSION['Mem_ID']."'";
$ttt1=mysql_query($ttt);
$ttt2 = mysql_fetch_array($ttt1);
echo $ttt2['Sum_Amount'];
?>
</td>
<td align="right">
<?
$tt="SELECT SUM(Out_Amount) AS Sum_Amount FROM outcome WHERE Out_Date BETWEEN '".date('Y-m-d',strtotime('-2 month'))."' AND '".date('Y-m-d',strtotime('-1 month'))."' AND Out_Type_ID LIKE '".$table3['Out_Type_ID']."' AND Mem_ID LIKE '".$_SESSION['Mem_ID']."'";
$tt1=mysql_query($tt);
$tt2 = mysql_fetch_array($tt1);
echo $tt2['Sum_Amount']; 
?>

</td>
<td align="right">
<?
$t="SELECT SUM(Out_Amount) AS Sum_Amount FROM outcome WHERE Out_Date BETWEEN '".date('Y-m-d',strtotime('-1 month'))."' AND '".date('Y-m-d')."' AND Out_Type_ID LIKE '".$table3['Out_Type_ID']."' AND Mem_ID LIKE '".$_SESSION['Mem_ID']."'";
$t1=mysql_query($t);
$t2 = mysql_fetch_array($t1);
echo $t2['Sum_Amount']; 

?>

</td><form action="<?=$_SERVER["PHP_SELF"];?>" method="POST">
<td align="right"><? $so=$ttt2['Sum_Amount']+$tt2['Sum_Amount']+$t2['Sum_Amount']; $so1=$so/3; echo $so1;?></td>
<input type="hidden" name="total<?=$b;?>" id="total<?=$b;?>" value="<?=$so1?>" />
<td align="right"><input name="withdraw<?=$b;?>" id="withdraw<?=$b;?>" type="text" value="0" onKeyUp="calculate('<?=$b;?>','wd');"/></td>
<td align="right"><input type="text" name="percent<?=$b;?>" id="percent<?=$b;?>" value="0.0" onKeyUp="calculate('<?=$b;?>','pc');"/></td>
</form>

<? 
$b++;
}
?>

<tr>
<td height="24">&nbsp;</td>
<td>รวม</td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right">
<p>
<label for="textfield"></label>
<input type="text" name="sumpercent" id="sumpercent" />
<input type="hidden" name="hdNum" id="hdNum" value="<?=$b;?>">
</p>
<p>
<input type="submit" name="button" id="button" value="Submit" />
</p>
</form></td>
</tr>
</table>
<p><a href="index_user.php">กลับ</a></p>
</fieldset>
</body>
<script language="javascript">
function calculate(_id,_type){
var _hdTotal = document.getElementById("total"+_id).value;
var _hdNum = document.getElementById("hdNum").value;
var _result;

if (_type == "wd") { // withdraw
var _withdraw = document.getElementById("withdraw"+_id).value;
if(isNaN(_withdraw)) _withdraw = 0;
if (_withdraw != 0) {
_result = ((_hdTotal * (100 - _withdraw))/ 100);
document.getElementById("percent"+_id).value = _result.toFixed(2);
}
else {
document.getElementById("percent"+_id).value = "";
}
}
else if (_type == "pc") { // percent
var _percent = document.getElementById("percent"+_id).value;
if(isNaN(_percent)) _percent = 0;
if (_percent != 0) {
_result = (100 - ((_percent *100 ) / _hdTotal));
document.getElementById("withdraw"+_id).value = _result.toFixed(2);
}
else{
document.getElementById("withdraw"+_id).value = "";
}
} 

// sumpercent
var _sum=0;
for(var i=1;i<_hdNum;i++){
var _percent = document.getElementById("percent"+i).value;
if(isNaN(_percent)) _percent = 0;
_sum += (_percent * 1);
}
document.getElementById("sumpercent").value = _sum.toFixed(2);

}
</script>
</html>




Tag : PHP, HTML/CSS, JavaScript









ประวัติการแก้ไข
2013-06-24 23:06:03
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-24 23:01:01 By : nongtoom View : 818 Reply : 5
 

 

No. 1

Guest


ผมลองจัดระเบียบโค๊ทให้ครับ อย่ามองข้ามสิ่งนี้นะครับ แล้วค่อยไล่แก้ที่ละจุดง่ายกว่าครับ

Code (PHP)
<script language="javascript">
 function calculate(_id,_type){
	var _hdTotal = document.getElementById("total"+_id).value;
	var _hdNum = document.getElementById("hdNum").value;
	var _result;

		if (_type == "wd") { // withdraw
			var _withdraw = document.getElementById("withdraw"+_id).value;
			if(isNaN(_withdraw)) _withdraw = 0;
			if (_withdraw != 0) {
				_result = ((_hdTotal * (100 - _withdraw))/ 100);
				document.getElementById("percent"+_id).value = _result.toFixed(2);
			} else {
				document.getElementById("percent"+_id).value = "";
			}
			
		}
		else if (_type == "pc") { // percent
			var _percent = document.getElementById("percent"+_id).value;
			if(isNaN(_percent)) _percent = 0;
			if (_percent != 0) {
				_result = (100 - ((_percent *100 ) / _hdTotal));
				document.getElementById("withdraw"+_id).value = _result.toFixed(2);
			} else{
				document.getElementById("withdraw"+_id).value = "";
			}
		} 

////////////////// sumpercent///////////////////////////////////////////////////////////////////
	var _sum=0;
		for(var i=1;i<_hdNum;i++){
			var _percent = document.getElementById("percent"+i).value;
			if(isNaN(_percent)) _percent = 0;
			_sum += (_percent * 1);
			}
	document.getElementById("sumpercent").value = _sum.toFixed(2);

	}
</script>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-25 01:31:47 By : Workbythai
 


 

No. 2



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



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


อันนี้ที่หนูลองทำค่ะ
แต่มันไม่ได้ตรง
// withdraw พอมันเกินปุ้บค่าที่ return กลับมันไม่ได้100 อะค่ะ
// percent ทำไมมันเช็คตั้งแต่ตัวแรกที่พิมอะค่ะ 2 สมมติ ช่องที่ 2 มีเงินอยู่ 1,666.67 แต่มันเช็คตั้งแต่ตัวแรกเลย อย่างเราใส่ 3 มันก้อแจ้งแล้วว่าเกิน ทั้งๆที่เพิ่งใส่แค่ตัวแรก


Code (PHP)
		<script language="javascript">
        	function calculate(_id,_type){
				var _hdTotal = document.getElementById("total"+_id).value;
				var _hdNum = document.getElementById("hdNum").value;
				var _result;
        
        	if (_type == "wd") { // withdraw
				var _withdraw = document.getElementById("withdraw"+_id).value;

				if(isNaN(_withdraw)) _withdraw = 0;
					if (_withdraw != 0) {
						_result = ((_hdTotal * (100 - _withdraw))/ 100);
							if(_withdraw < 0 || _withdraw > 100){
							alert ("over 100%");
							var _sum=0;
							var _sumVal=0;
								var _val = document.getElementById("withdraw"+_id).value;
								if(isNaN(_val)) _val = 0;
								_sumVal += (_val * 1);
								_withdraw = (100 - _sumVal); // %
								_result = ((_hdTotal * (100 - _withdraw))/ 100);
								document.getElementById("withdraw"+_id).value = _withdraw;
								document.getElementById("percent"+_id).value = _result.toFixed(2);
							}
						document.getElementById("percent"+_id).value = _result.toFixed(2);
						
					}
					else {
						document.getElementById("percent"+_id).value = "";
					}
				}
               	else if (_type == "pc") { // percent
				var _percent = document.getElementById("percent"+_id).value;
				if(isNaN(_percent)) _percent = 0;
					if (_percent != 0) {
					_result = (100 - ((_percent *100 ) / _hdTotal));
						if(_percent < 0 || _percent > _hdTotal){
							alert ("over");
							}
					document.getElementById("withdraw"+_id).value = _result.toFixed(2);
					}
        		else{
					document.getElementById("withdraw"+_id).value = "";
					}
				} 
        
        // sumpercent
			var _sum=0;
			for(var i=1;i<_hdNum;i++){
				var _percent = document.getElementById("percent"+i).value;
				if(isNaN(_percent)) _percent = 0;
				_sum += (_percent * 1);
				}
				document.getElementById("sumpercent").value = _sum.toFixed(2);
				
				}
        </script>



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-26 11:43:52 By : nongtoom
 

 

No. 3



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



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


พี่ๆค่ะ ตอนนี้ //withdraw ได้แล้วพอใสเกินก้อจะแจ้งแล้วค่า return ก้อเป็น 100 แล้ว
แต่ // percent ยังไม่ได้ค่ะ คือไม้อยากให้เช็คตั้งแต่ตัวแรกที่พิมอะค่ะ

Code (PHP)
<script language="javascript">

        	function calculate(_id,_type){
				var _hdTotal = document.getElementById("total"+_id).value;
				var _hdNum = document.getElementById("hdNum").value;
				var _result;
        
        	if (_type == "wd") { // withdraw
				var _withdraw = document.getElementById("withdraw"+_id).value;

				if(isNaN(_withdraw)) _withdraw = 0;
					if (_withdraw != 0) {
						_result = ((_hdTotal * (100 - _withdraw))/ 100);
							if(_withdraw < 0 || _withdraw > 100){
							alert ("over 100 %");

								document.getElementById("withdraw"+_id).value = 100;
								_result = ((_hdTotal * (100 - 100))/ 100);
								document.getElementById("percent"+_id).value = _result.toFixed(2);
							}
						document.getElementById("percent"+_id).value = _result.toFixed(2);
						
					}
					else {
						document.getElementById("percent"+_id).value = "";
					}
				}
        	else if (_type == "pc") { // percent
				var _percent = document.getElementById("percent"+_id).value;
				if(isNaN(_percent)) _percent = 0;
					if (_percent != 0) {
					_result = (100 - ((_percent *100 ) / _hdTotal));
						if(_percent < 0 || _percent > _hdTotal){
							alert ("over");
							}
					document.getElementById("withdraw"+_id).value = _result.toFixed(2);
					}
        		else{
					document.getElementById("withdraw"+_id).value = "";
					}
				} 
        
     
        </script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-26 14:25:44 By : nongtoom
 


 

No. 4



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



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

เปลี่ยนจาก onKeyUp="calculate( เป็น onblur="calculate(
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-26 15:07:09 By : {Cyberman}
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : {Cyberman} เมื่อวันที่ 2013-06-26 15:07:09
รายละเอียดของการตอบ ::
คืออยาากไห้พอไส่เกินปุ้บ แจ้งเลยอะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-26 16:17:42 By : nongtoom
 

   

ค้นหาข้อมูล


   
 

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