ต้องการให้แจ้งเตือนเวลาสั่งสินค้าเกินในจำนวนสต็อกมีครับ รบกวนทีครับ
cart.php
<?php
session_start();
$p_id = $_REQUEST['p_id'];
$act = $_REQUEST['act'];
if($act=='add' && !empty($p_id))
{
if(isset($_SESSION['cart'][$p_id]))
{
$_SESSION['cart'][$p_id]++;
}
else
{
$_SESSION['cart'][$p_id]=1;
}
}
if($act=='remove' && !empty($p_id))
{
unset($_SESSION['cart'][$p_id]);
}
if($act=='update')
{
$amount_array = $_POST['amount'];
foreach($amount_array as $p_id=>$amount)
{
$_SESSION['cart'][$p_id]=$amount;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>บันทึกรายการสินค้า</title>
<style type="text/css">
body,td,th {
font-family: "TH SarabunPSK";
font-size: x-large;
}
body {
background-color: #9FF;
}
</style>
</head>
<body>
<form id="frmcart" name="frmcart" method="post" action="">
<table width="600" border="0" align="center" class="square">
<tr>
<td colspan="5" align="center" valign="middle" bgcolor="#CCCCCC"><strong>บันทึกรายการสินค้า</strong></td>
</tr>
<tr>
<td align="center" valign="middle" bgcolor="#EAEAEA">สินค้า</td>
<td align="center" bgcolor="#EAEAEA">ราคา</td>
<td align="center" bgcolor="#EAEAEA">จำนวน</td>
<td align="center" bgcolor="#EAEAEA">รวม(บาท)</td>
<td align="center" bgcolor="#EAEAEA">ลบ</td>
</tr>
<?php
$total=0;
if(!empty($_SESSION['cart']))
{
include("connect.inc");
foreach($_SESSION['cart'] as $p_id=>$qty)
{
$sql = "select * from product where p_id=$p_id";
$query = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($query);
$sum = $row['p_price'] * $qty;
$total += $sum;
echo "<tr>";
echo "<td width='334' bgcolor='#FFFFFF'>" . $row["p_name"] . "</td>";
echo "<td width='46' align='right' bgcolor='#FFFFFF'>" .number_format($row["p_price"],2) . "</td>";
echo "<td width='57' align='right' bgcolor='#FFFFFF'>";
echo "<input type='text' name='amount[$p_id]' value='$qty' size='2'/></td>";
echo "<td width='93' align='right' bgcolor='#FFFFFF'>".number_format($sum,2)."</td>";
echo "<td width='46' align='center' bgcolor='#FFFFFF'><a href='cart.php?p_id=$p_id&act=remove'>ลบ</a></td>";
echo "</tr>";
}
echo "<tr>";
echo "<td colspan='3' bgcolor='#EAEAEA' align='center'><b>ราคารวม</b></td>";
echo "<td align='right' bgcolor='#EAEAEA'>"."<b>".number_format($total,2)."</b>"."</td>";
echo "<td align='left' bgcolor='#EAEAEA'></td>";
echo "</tr>";
}
?>
<tr>
<td align="center" valign="middle"><a href="product.php">กลับหน้ารายการสินค้า</a></td>
<td colspan="4" align="right">
<input type="submit" name="button" id="button" value="ปรับปรุง" />
<input type="button" name="Submit2" value="สั่งซื้อ" onclick="window.location='confirm.php';" />
</td>
</tr>
</table>
</form>
</body>
</html>
confirm.php
<?php
error_reporting( error_reporting() & ~E_NOTICE );
session_start();
?>
<!DOCTYPE html>
<html>
<style type="text/css">
body,td,th {
font-family: "TH SarabunPSK";
font-size: x-large;
}
body {
background-color: #9FF;
}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ใบเสร็จรับเงิน</title>
</head>
<body>
<p align="center"><b>ใบเสร็จรับเงิน</b></p>
<p align="center">ร้านอิเล็กทรอนิกส์พลัส</p>
<p align="center">ที่อยู่ 999 ถ.นครอินทร์ ต.บางขนุน อ.บางกรวย จ.นนทบุรี 11130</p>
<p align="center">โทรศัพท์ 02-999-8888</p>
<table width="700" border="1" align="center" class="table">
<tr>
<td width="1558" colspan="5" align="right" bgcolor="#CCCCCC"><? $date = date("วันที่ j เดือนที่ n ปี ค.ศ. Y") ;
echo $date ; ?></td>
</tr>
<td align="center" bgcolor="#EAEAEA"><strong>ลำดับ</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>สินค้า</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>ราคา</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>จำนวน</strong></td>
<td align="center" bgcolor="#EAEAEA"><strong>รวม/รายการ</strong></td>
</tr>
<?php
require_once('Connections/localhost.php');
$total=0;
foreach($_SESSION['cart'] as $p_id=>$qty)
{
$sql = "select * from product where p_id=$p_id";
$query = mysql_db_query($database_localhost, $sql)or die(mysql_error().":<br />".$sql_select) ;;
$row = mysql_fetch_array($query);
$sum = $row['p_price']*$qty;
$sumall += $sum;
if($sumall >= 5000 && $sumall < 10000){
$discount = 3;
}elseif($sumall >= 10001 && $sumall <= 20000){
$discount = 5;
}elseif($sumall >= 20001){
$discount = 7;
}
$discount_bath = ($sumall*$discount)/100;
$totalall = ($sumall-$discount_bath);
$vat = ($totalall*7/100);
$total = ($totalall+$vat);
echo "<tr>";
echo "<td align='center' bgcolor='#FFFFFF'>";
echo $i += 1;
echo "</td>";
echo "<td bgcolor='#FFFFFF'>" . $row["p_name"] . "</td>";
echo "<td align='right' bgcolor='#FFFFFF'>" .number_format($row['p_price'],2) ."</td>";
echo "<td align='right' bgcolor='#FFFFFF'>$qty</td>";
echo "<td align='right' bgcolor='#FFFFFF'>".number_format($sum,2)."</td>";
echo "</tr>";
}
echo "<tr>";
echo "<td align='right' colspan='4' bgcolor='#FFFFFF'><b>ราคารวม</b></td>";
echo "<td align='right' bgcolor='#FFFFFF'>"."<b>".number_format($sumall,2)."</b>"."</td>";
echo "</tr>";
echo "<tr>";
echo "<td align='right' colspan='4' bgcolor='#FFFFFF'><b>ส่วนลดที่ได้รับ</b></td>";
echo "<td align='right' bgcolor='#FFFFFF'>"."<b>".number_format($discount_bath,2)."</b>"."</td>";
echo "</tr>";
echo "<tr>";
echo "<td align='right' colspan='4' bgcolor='#FFFFFF'><b>ราคาก่อนรวมภาษี</b></td>";
echo "<td align='right' bgcolor='#FFFFFF'>"."<b>".number_format($totalall,2)."</b>"."</td>";
echo "</tr>";
echo "<tr>";
echo "<td align='right' colspan='4' bgcolor='#FFFFFF'><b>ภาษีมูลค่าเพิ่ม 7%</b></td>";
echo "<td align='right' bgcolor='#FFFFFF'>"."<b>".number_format($vat,2)."</b>"."</td>";
echo "</tr>";
echo "<tr>";
echo "<td align='right' colspan='4' bgcolor='#FFFFFF'><b>ราคาสุทธิ</b></td>";
echo "<td align='right' bgcolor='#FFFFFF'>"."<b>".number_format($total,2)."</b>"."</td>";
echo "</tr>";
?>
</table>
<table align="center">
<div align="center">
<p><strong>เงื่อนไขการให้ส่วนลด</strong></p>
<p>ซื้อสินค้า 5,000 - 10,000 บาท รับส่วนลด 3%</p>
<p>ซื้อสินค้า 10,001 - 20,000 บาท รับส่วนลด 5%</p>
<p>ซื้อสินค้า 20,001 บาท ขึ้นไป รับส่วนลด 7%</p>
</div>
</table>
<div align="center"><p><a href="product.php">กลับหน้ารายการสินค้า</a></p></div>
<div align="center"><p><a href="cart.php">กลับหน้าบันทึกรายการสินค้า</a></p></div>
<div align="center"><p><button class="btn btn-primary" onClick="window.print()">พิมพ์ใบเสร็จ</button></p></div>
<div align="center"><strong>รายละเอียดลูกค้า</strong>
</div>
<form name="formlogin" action="saveorder.php" method="POST" id="login" class="form-horizontal">
<div align="center">
<p><input type="text" name="name" class="form-control" required placeholder="ชื่อ-สกุล" /></p>
<p><input type="text" name="phone" class="form-control" required placeholder="เบอร์โทรศัพท์" /></p>
<p><input type="hidden" name="total" value="<?php echo $total;?>"></p>
<button type="submit" class="btn btn-primary" id="btn">บันทึกข้อมูล</button>
</div>
</form>
</body>
</html>
แจ้งเตือนเมื่อสั่งสินค้าเกินจำนวนในสต็อกครับ
ต้องเขียนเพิ่มในหน้าไหน ใช้โค้ดอย่างไรครับ รบกวนด้วยครับ ขอบคุณครับTag : PHP, MySQL, HTML
Date :
2020-10-20 22:42:26
By :
gamesgames
View :
918
Reply :
5
ใส่ในหน้า Check Out ก่อนชำระเงิน โดยนำ id ของสินค้าใน cart แต่ละตัว มาเปรียบเทียบกับฐานข้อมูล
- table ให้สร้างมา 1 td เมื่อ สินค้าน้อยกว่าในสต๊อคให้แสดงข้อความ alert หรือ notification อะไรก็ได้แล้วแต่
- update cart quantity ให้เป็นจำนวนปัจจุบันที่มีอยู่
- รวมถึง update ราคารวม
ประวัติการแก้ไข 2020-10-21 08:48:59
Date :
2020-10-21 08:46:16
By :
Genesis™
ตาม rep 1
ควรสร้าง db ไว้เก็บและอัปเดต จำนวนสินค้าคงคลัง เพื่อนำไปเปรียบเทียบกับการสั่งซื้อ
ส่วนการแจ้งเตือน เบื้องต้นทดสอบการเปรียบเทียบให้ได้ก่อนด้วย JS: alert()
แล้วค่อยหา bootstrap pop up มาใช้ในขั้นตอนการเสริมความงาม
หรือใช้พวก innerHTML ของ JS เพื่อไม่สร้างความรำคาญให้กับ User
Date :
2020-10-21 15:46:38
By :
PhrayaDev
ทำเป็นแค่ java แจ้งเตือนตอนกดหน้าถัดไปได้มั้ยครับ
เช่น กรอกสินค้าหมายเลข 1 ในสต็อกมี 2 แต่เรากรอกไป 3 พอกดสั่งซื้อ ขึ้นแจ้งเตือนแล้วเด้งกลับมาหน้าเดิม
Date :
2020-10-21 21:22:14
By :
gamesgames
หลักการทำงาน
Code (JavaScript)
<input type="text" id="qty">
<!-- stock attribute คือจำนวนสินค้าที่มีใน stock (ดึงจากฐานข้อมูลหรือใช้ num_rows) -->
<input type="button" name="Submit2" value="สั่งซื้อ" stock="3" />
<script>
var sm = document.getElementsByName("Submit2")[0];
sm.addEventListener("click", checkStock);
function checkStock() {
var qty = document.getElementById("qty");
if (parseInt(qty.value) <= parseInt(sm.getAttribute("stock"))) {
alert("โหลดหน้าถัดไป");
} else {
alert("สินค้าไม่พอ, โหลดหน้าเดิม");
}
}
</script>
ดูสด
Date :
2020-10-21 23:09:02
By :
PhrayaDev
Load balance : Server 02