|
|
|
สอบถามเรื่อง ราคาสินค้าครับ เมื่อเปลี่ยน จำนวน แล้วราคา จะเปลียนไปด้วยครับ |
|
|
|
|
|
|
|
ตามรูปด้านบน เมื่อเปลี่ยน จำนวนสินค้าในช่องจำนวน ราคาในช่องรวมเงินจะเปลี่ยน
สามช่องด้านล่างจะเปลี่ยนด้วย ปัญหาคือ ถ้าใบสั่งซื้อใบนั้นมีสินค้าแค่อย่างเดียว
มันจะไม่คำนวนอะไรเลย ซึ่งจะไม่เกิดขึ้นกับใบสั่งซื้อที่มีรายการมากว่า 1 รายการ
ไม่ทราบว่าผิดพลาดตรงไหน หรือส่วนไหนครับผม
นี่ครับโค้ด php ในส่วนส่งค่าให้ javascript ครับ ส่วน โค้ด javascript อยู่ด้านล่างครับ
Code (PHP)
<table style="width:90%" border="0" align="center" bgcolor="#FFFFFF">
<tr height="40" bgcolor="#69c750">
<td align="center" width="50"><h3>ลำดับ</h3></td>
<td align="center" width="70"><h3>รหัสสินค้า</h3></td>
<td align="center" width="300"><h3>ชื่อสินค้า</h3></td>
<td align="center" width="80"><h3>ราคา/หน่วย</h3></td>
<td align="center" width="60"><h3>จำนวน</h3></td>
<td align="center" width="80"><h3>รวมเงิน</h3></td>
</tr>
<?php
$sum="";
$discount = "";
$net="";
$i=1;
while($row = mysql_fetch_array($myData)){
$p_id =$row["pID"];
$pname =$row["pro_name"];
$pro_qty = $row['pro_qty'];
$price = $row["price"];
$price1 = number_format($price, 2);
$qty = $row['sale_qty'];
$total = $row['total'];
$totalC = number_format($total, 2);
$netPrice = $row['netPrice'];
echo "<tr height='30' bgcolor='#CCFFCC'>";
echo "<td align='center'>$i<input type = 'hidden' name = 'txtid$i' size='10' value ='" . $sID . "'/></td>";
echo "<td align='center'>$p_id<input type = 'hidden' name = 'HDtxtpid$i' size='10' value ='" . $p_id . "'/>
<input type = 'hidden' name = 'proQty$i' id = 'proQty$i' value ='" . $pro_qty . "'/>
</td>";
echo "<td align='left'> $pname</td>";
//echo "<td><input type = 'text' name = 'proID$i' size='20' value = '$p_id' readonly='true' style='text-align:right;'></td>";
//echo "<td><input type = 'text' name = 'name$i' value = '$pname' readonly='true' style='text-align:right;'></td>";
echo "<td><input type = 'text' name = 'Sprice$i' id = 'Sprice$i' value = '".number_format($price,2)."' readonly='true' style='width:85px;text-align:right;font-size:16px;'>
<input type = 'hidden' name = 'price$i' id = 'price$i' value = '$price'/></td>";
echo "<td><input type = 'text' name = 'amount$i' maxlength='3' onkeyup='caculate($i)' id = 'amount$i' value = '$qty' style='width:55px;text-align:right;font-size:16px;' onKeyPress='check_number(event);'>
<input type = 'hidden' name = 'HDamount$i' value = '$qty'/>
</td>";//เก็บจำนวนซื้อสินค้าเก่า
echo "<td><input type = 'text' name = 'total$i' id = 'total$i' value = '$total' readonly='true' class='total' style='width:105px;text-align:right;font-size:16px;'>
</td><br />";
echo " </tr>";
$sum =($sum + $total);
$i++;
}
?>
<input type='hidden' value="<?php echo $i ?>" name="rows"/><br/>
</table>
<br/>
<!--</div>--></center>
<table align="right">
<?php if($mID !="-"){
$discount = ($sum * 25)/100;
// echo $discount;
$net = ($sum - $discount);
//echo $net;
?>
<tr>
<td align="right"><b><font size="3">รวมเงินทั้งสิ้น </font></b></td>
<td> <input type="text" name="txtsum" id="txtsum" value="<?php echo number_format($sum,2); ?>" style="width:150px;text-align:right;font-size:18px;" readonly="true" class='sum'/></b>
<input type="hidden" name="HDtxttsum" id="txtsum1" value="<?php echo $sum; ?>">
</td>
<td width="50"></td>
</tr>
<tr>
<td align="right"><b><font size="3">ส่วนลด 25 % </font></b></td>
<td> <input type="text" name="txtdiscount" id="txtdiscount" value="<?php echo number_format($discount,2);?>" style="width:150px;text-align:right;font-size:18px;" readonly="true" /></td>
<td></td>
</tr>
<tr>
<td align="right"><b><font size="3">รวมเงินสุทธิ </font></b></td>
<td> <input type="text" name="txtnet" id="txtnet" value="<?php echo number_format($net,2);?>" style="width:150px;text-align:right;font-size:18px;" readonly="true"/>
<input type="hidden" name="HDtxtnet" id="txtnet" value="<?php echo $net;?>">
</td>
<td></td>
</tr>
<?php }
else if($mID ="-") {
$discount = 0;
// echo $discount;
$net = ($sum - $discount);
//echo $net;
?>
<tr>
<td align="right"><b><font size="3">รวมเงินทั้งสิ้น </font></b></td>
<td> <input type="text" name="txtsum" id="txtsum" value="<?php echo number_format($sum,2); ?>" style="width:150px;text-align:right;font-size:18px;" readonly="true" class='sum'/></b>
<input type="hidden" name="HDtxttsum" id="txtsum1" value="<?php echo $sum; ?>">
</td>
<td width="50"></td>
</tr>
<tr>
<td align="right"><b><font size="3">ส่วนลด </font></b></td>
<td> <input type="text" name="txtdiscount" id="txtdiscount" value="<?php echo number_format($discount,2);?>" style="width:150px;text-align:right;font-size:18px;" readonly="true" /></td>
<td></td>
</tr>
<tr>
<td align="right"><b><font size="3">รวมเงินสุทธิ </font></b></td>
<td> <input type="text" name="txtnet" id="txtnet" value="<?php echo number_format($net,2);?>" style="width:150px;text-align:right;font-size:18px;" readonly="true"/>
<input type="hidden" name="HDtxtnet" id="txtnet" value="<?php echo $net;?>"/>
</td>
<td></td>
</tr>
<?php }?>
</table>
และนี้คือโค้ด Java เพื่อคำนวนครับผม
Code (VBScript)
function caculate(i) // ฟั่งชั่นบวกราคา รับค่าเลข id มา
{
p = "#price"+i; // ตัวแปรเก็บค่า id ของ input ราคา
m = "#amount"+i; // ตัวแปรเก็บค่า id ของ input จำนวน
t = "#total"+i;
//alert(i);
aa = "#amount"+i;
bb = "#proQty"+i;
var qtynew = $(aa).val();
var qtyold = $(bb).val();
//alert("qtynew = "+qtynew+" qtyold = "+qtyold)
if(parseInt(qtynew)==0)
{
alert("จำนวนสินค้า ต้องไม่เท่ากับ 0");
$(aa).val('');
$(t).val('0'); // ช่องรวมว่าง
totalCalculate()//คิดยอดรวม
}
else{
if(parseInt(qtynew) > parseInt(qtyold))
{
alert("จำนวนสินค้าคงเหลือน้อยกว่าจำนวนที่ขาย");
$(aa).val('');
$(t).val('0'); // ช่องรวมว่าง
totalCalculate()//คิดยอดรวม
}
else{
if($(p).val()>0 && $(m).val()>0){ // ถ้าช่องราคาำและจำนวนมากกว่า 0
$all = $(p).val()*$(m).val(); //ราคา+จำนวน ไว้ใน $all
$(t).val($all);// รวมค่า
totalCalculate(); // คิดยอดรวม
}else if($(p).val()<=0 || $(m).val()<=0){ // ถ้าราคา หรือ จำนวน น้อยกว่า 0
$(t).val('0'); // ช่องรวมว่าง
totalCalculate();//คิดยอดรวม
}
}
}
}
function totalCalculate(){
$i = $(".total").length-1; // นับจำนวนรวม
f = $(".total").eq(0).val(); // เก็บค่าช่องรวมตัวแรกไว้
if(f>=0){ // ถ้ารวมตัวแรกมีค่ามากกว่า 0
for(x=1;x<=$i;x++){ // วนลูปเก็บค่ารวมแต่ละช่อง
$xx = $(".total").eq(x).val();
if($xx>0){ // ถ้าช่องรวมแต่ละตัวมีค่ามากกว่า 0
f = parseInt(f)+parseInt($xx); // ให้บวกค่าช่องรวมตัวแรก กับ ช่องรวมตัวนั้นๆ
}
}
$("#all").val(f);
parseFloat(document.getElementById('txtsum').value= addCommas(f.toFixed(2)));
parseFloat(document.getElementById('txtsum1').value=f);
}
/// คำนวณส่วนลด
d = "#discount";// // ตัวแปรเก็บค่า id ของ input รวม
dis = "#txtdiscount";
net = 0;
if($(d).val() == "-")
{
gg = 0
net = parseFloat(f)
}
else
{
gg = parseFloat(f) * 0.25;
net = parseFloat(f) - parseFloat(gg);
}
parseFloat(document.getElementById('txtdiscount').value = addCommas(gg.toFixed(2)));
parseFloat(document.getElementById('txtnet').value = addCommas(net.toFixed(2)));
parseFloat(document.getElementById('HDtxtnet').value = net.toFixed(2));
}
Tag : PHP, MySQL, HTML/CSS, JavaScript
|
|
|
|
|
|
Date :
2013-03-29 15:28:23 |
By :
nutzaaclub |
View :
1005 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้พวก OnChange เข้ามาจัดการกับ Event น่ะครับ แค่อ่านค่าแล้วเอาไปคำนวณครับ ไม่น่าจะยาก
|
|
|
|
|
Date :
2013-03-30 07:27:37 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือว่า มันคำนวนครับ เพราะผมใช้ event onKeyup จับนะครับ แต่มันคำนวนเฉพาะใบที่่มีมากกว่า 1 รายการ รายการเดียวมันไม่ทำอะไรเลยครับ หรือว่ามัน ไม่เหมือนกัน กับ OnChange
|
|
|
|
|
Date :
2013-03-30 09:40:41 |
By :
nutzaaclub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|