|
|
|
พี่ค่ะ รบกวนถามเรื่อง textbox หลาย textbox อีกสักนิดค่ะ คือไม่อยากไห้เกินค่าที่มีอยู่ |
|
|
|
|
|
|
|
หนูลองประยุกต์จากที่พี่ 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"> </td>
<td width="118" align="center" valign="middle"> </td>
<td width="118" height="23" align="center" valign="middle"> </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"> </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
|
|
|
|
|
Date :
2013-06-24 23:01:01 |
By :
nongtoom |
View :
818 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองจัดระเบียบโค๊ทให้ครับ อย่ามองข้ามสิ่งนี้นะครับ แล้วค่อยไล่แก้ที่ละจุดง่ายกว่าครับ
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ที่หนูลองทำค่ะ
แต่มันไม่ได้ตรง
// 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ๆค่ะ ตอนนี้ //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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เปลี่ยนจาก onKeyUp="calculate( เป็น onblur="calculate(
|
|
|
|
|
Date :
2013-06-26 15:07:09 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|