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,027

HOME > PHP > PHP Forum > ผมขอแนวทางการ check สินค้าเมื่อกรอกจำนวนสินค้าแล้วให้มันไปเช็ค กับสินค้าคงเหลือในฐานข้อมูลนะครับ



 

ผมขอแนวทางการ check สินค้าเมื่อกรอกจำนวนสินค้าแล้วให้มันไปเช็ค กับสินค้าคงเหลือในฐานข้อมูลนะครับ

 



Topic : 091108



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



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



chkpro

จากรูปภาพด้านบน เมื่อผมกรอกจำนวนสินค้าในช่อง ชิ้น ผมต้องการให้มันไป check กับสินค้าคงเหลือในฐานข้อมูล ว่าพอหรือไหม

ถ้าพอก็สั่งซื้อได้ แต่ถ้าไม่ ก็ให้ alert ว่าไม่ พอกับที่สั่ง ไม่ทราบว่าจะต้องเขียนแบบไหนครับผม

นี้คือโค้ดเต็มๆ ของหน้านี้ครับ

Code (PHP)
<?php
include_once("respons_error.php");
include_once("connectDB.php");
?>

<!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">
<style type="text/css">
table.coll 
{
border-collapse: collapse
}
table.sep
{
border-collapse: separate
}
</style>


<script language="javascript">

	function Opensearchcus()
	{
		window.open('include_admin/searchname.php','myPopup','width=650,height=200,toolbar=0, menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');
	}
	function Openchoosepro()
	{
		window.open('include_admin/searchproduct.php','myPopup','width=850,height=500,toolbar=0, menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=0,top=0');
	}
	function test()
	{
		alert("test");
	}
</script>
<script>
function check_number(a) {
	if(window.event){ // IE
        keychar = a.keyCode;
    }
	if ( keychar != 13 && ( keychar < 48) || ( keychar > 57)) {
event.returnValue = false;
}else
	{ 
	//alert("Pass");
	}
}
</script>
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
function addproductsale(ProductID,Qty,Price,CID){
	//Ajax sale
		  HttPRequest = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 HttPRequest = new XMLHttpRequest();
			 if (HttPRequest.overrideMimeType) {
				HttPRequest.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  } 
		  
		  if (!HttPRequest) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		  var url = 'include_admin/add_product-sale.php';
		  var pmeters = "tProductID=" + ProductID+
						"&tQty=" + Qty + "&tPrice=" + Price +  "&tCID=" + CID;
			HttPRequest.open('POST',url,true);

			HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			HttPRequest.setRequestHeader("Content-length", pmeters.length);
			HttPRequest.setRequestHeader("Connection", "close");
			HttPRequest.send(pmeters);
			
			
			HttPRequest.onreadystatechange = function()
			{

				 if(HttPRequest.readyState == 3)  // Loading Request
				  {
				   document.getElementById("addproduct").innerHTML = "Now is Loading...";
				  }

				 if(HttPRequest.readyState == 4) // Return Request
				  {			  
					  document.getElementById('addproduct').innerHTML = HttPRequest.responseText;
				  }				
			}
}
</script>
<script type="text/javascript">
function delproductsale(ProductID,Netqty){
	//Ajax Del sale
	//alert("ID = " +ProductID+"&Netqty = "+Netqty);
		  HttPRequest = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 HttPRequest = new XMLHttpRequest();
			 if (HttPRequest.overrideMimeType) {
				HttPRequest.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  } 
		  
		  if (!HttPRequest) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		  var url = 'include_admin/add_product-sale.php';
		  var pmeters = "ProID=" + ProductID+"&Netqty=" + Netqty+
						"&del=del";
			HttPRequest.open('POST',url,true);

			HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			HttPRequest.setRequestHeader("Content-length", pmeters.length);
			HttPRequest.setRequestHeader("Connection", "close");
			HttPRequest.send(pmeters);
			
			
			HttPRequest.onreadystatechange = function()
			{

				 if(HttPRequest.readyState == 3)  // Loading Request
				  {
				   document.getElementById("addproduct").innerHTML = "Now is Loading...";
				  }

				 if(HttPRequest.readyState == 4) // Return Request
				  {			  
					  document.getElementById('addproduct').innerHTML = HttPRequest.responseText;
				  }				
			}
}
</script>

<body>
<form action="" method="post" id="formsearchname" style="display:none">
<table border="0" align="center">
  <tr>
    <td>ค้นหาลูกค้า</td>
    <td><input name="txtsearch" type="text" id="txtsearch" width="100" value="<?php if(isset($_REQUEST['txtsearch'])){echo $_REQUEST['txtsearch'];}?>"/></td>
    <td><select id="searchcus" name="typename">
    <option value="fname" <?php if ($typename=="fname"){echo "selected=\"selected\"";}?>>ชื่อ</option>
	<option value="nname" <?php if ($typename=="nname"){echo "selected=\"selected\"";}?>>ชื่อเล่น</option>
    </select></td>
    <td>&nbsp;</td>
  </tr>
</table>
<span>
</span>
</form>
<span>
<table border="0" align="center">
        <tr>
          <td width="90" height="26"><h3>รหัสลูกค้า</h3></td>
          <td width="249"><input name="txtidcus" type="text" disabled="disabled" id="txtidcus" size="20"/>
          <input type="hidden" id="hdidcus" name="hdidcus" value="" />
            <input type="button" value="   ค้นหา   " name="searchname" id="searchname" onclick="Opensearchcus()" style="font-size:medium"/></td>
          <td width="101"><h3>รหัสสมาชิก</h3></td>
          <td width="181"><input type="text" id="txtidmem" name="txtidmem" disabled="disabled"/><input type="hidden" id="hdidmem" name="hdidmem" value="" /></td>
        </tr>
        <tr>
          <td height="26"><h3>ชื่อ</h3></td>
          <td><input type="text" id="txtname" name="txtname" disabled="disabled"/>
          <input type="hidden" id="hdname" name="hdname" value="" /></td>
          <td><h3>สกุล</h3></td>
          <td><input type="text" id="txtlastname" name="txtlastname" disabled="disabled"/>
          <input type="hidden" id="hdlastname" name="hdlastname" value="" /></td>
        </tr>
        <tr>
          <td height="31"><h3>ส่วนลด(%)</h3></td>
          <td><input name="txtdiscount" type="text" id="txtdisconut" size="10" disabled="disabled" />
          <input name="hddiscount" type="hidden" id="hddisconut" size="10" /></td>          
        </tr>
      </table>
</span>
<p>&nbsp;</p>
<p><span>  </span><span>
</span></p>
<span>
<hr />
</span>
<span id="selectproduct">

<table width="635" border="0" align="center">
          <form action="" id="formproduct" method="post">
            <tr>
              <td width="121" height="26"><h3>ชื่อสินค้า</h3></td>
              <td colspan="6">
             <input type="hidden" id="productid" size="15"  /> 
              <input name="productname" type="text" id="productname" size="40" disabled="disabled" />
              <input name="hdproductname" type="hidden" id="hdproductname" size="40" />
              <input type="button" name="choosepro" id="choosepro" value="  เลือกสินค้า  " onclick="Openchoosepro();" style="font-size:medium"/></td>
  </form>
            <tr>
              <td height="26"><h3>ราคา/หน่วย</h3></td>
              <td width="214"><h3>
                <input name="productprice" type="text" id="productprice" value="" size="10" disabled="disabled" />
                <input name="hdproductprice" type="hidden" id="hdproductprice" value="" size="20"  />
                บาท</h3></td>
              <td width="61"><h3>จำนวน</h3></td>
              <td width="221">
              	<h3>
              	  <input name="productqty" type="text" onkeypress="check_number(event);" id="productqty" size="10" />
           	    ชิ้น</h3></td>
              
            </tr>
</table>
</span>
<p>&nbsp;</p>
<table width="86" border="0" align="center">
   		  <tr>
   		    <td width="80"><input type="button" name="submitpro" id="submitpro" value="     เพิ่ม     " onclick="addproductsale(document.getElementById('productid').value, document.getElementById('productqty').value,document.getElementById('hdproductprice').value,document.getElementById('hdidcus').value);" style="font-size:medium"/></td>
 		    </tr>
 		  </table>
   		<p>&nbsp;</p>
   		<span>
   		<hr />
   		</span>
        <span id=addproduct>
		
        </span>
        
</body>
</html>





Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery









ประวัติการแก้ไข
2013-02-19 19:56:50
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-02-19 15:17:32 By : nutzaaclub View : 1484 Reply : 5
 

 

No. 1



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


Quote:
จะต้องใส่ชื่อสินค้าก่อนถึงจะตรวจสอบจำนวนคงเหลือในฐานข้อมูลได้ครับ
เพราะเราต้องการชื่อสินค้า หรือรหัสสินค้าอ้างอิงครับ







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-19 21:14:18 By : sakuraei
 


 

No. 2



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


ตอบได้แค่หลักการนะครับ เพราะไม่ค่อยเก่งพวกโค้ด

ก็ post ค่า จำนวนที่สั่ง กับ id สินค้าในฟอร์ม ไปตรวจสอบครับ

แล้วก็ select sum(qty)as sum_qty from product where id = '".$_POST["id"]."'

ก็จะได้ sum_qty มา เอามาลบกับ POST["จำนวนที่สั่ง"]

ถ้าไม่มากกว่า ก็ update ตารางได้เลยครับ

อีกวิธีนึง ก็ แสดงค่า สินค้าคงเหลือเลยครับ อาจจะใช้ script หรืออะไรก็แล้วแต่ ไม่ให้สั่งเกิน

แต่หลักๆ ต้องออกแบบตารางดีๆ ด้วยครับ สำคัญมาก

ประมาณนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-19 22:08:36 By : nutsuanplu
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : sakuraei เมื่อวันที่ 2013-02-19 21:14:18
รายละเอียดของการตอบ ::
ส่วนของโชว์ชื่อแล้วรหัสผมได้แล้วครับ
ต่อไปผมอยากจะถามว่า ถ้าผมอยากส่ง ajax ไปเช็คนี้ ผมต้องอย่าไงครับ เพราะในบทความของที่นี้ จะเป็นแบบ ส่งค่าที่ได้กลับมา แต่ผมไม่มีค่าที่ส่งกลับมา เพราะแค่ไปเช็คแค่ว่ามีสินค้าพอหรือเปล่าอะครับผม



ประวัติการแก้ไข
2013-02-20 09:42:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-20 09:41:12 By : nutzaaclub
 


 

No. 4



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


204.<input name="productname" type="text" id="productname" size="40" disabled="disabled" />
205.<input name="hdproductname" type="hidden" id="hdproductname" size="40" />

ถ้าอย่างนั้นผมก็จะอ้างถึงชื่อสินค้าเพื่อการดึงข้อมูลน่ะครับ จะเลือก hdproductname แล้วกัน


Code (PHP)
<script>
$("input[name='productqty']").keyup(function(e){
   if ( e.keyCode != 13 && ( e.keyCode < 48) || ( e.keyCode > 57)) {
       var pname = $("#hdproductname").val();
       $.get("checkAvailableqty.php",{prodname:pname,requireqty:$(this).val()},function(data){
                if($(data).length>1){ alert(data); return false;}else{return true;}
                // ถ้ามีตัวอักษรที่ส่งกลับมาจาก callback function ของ jquery แสดงว่ามีข้อความแจ้งข้อผิดพลาดครับ
        });
   }else{
       $(this).val('');
   }
});
</script>



"checkAvailableqty.php"
<?php
if(isset($_GET["prodname"],$_GET["requireqty"])){
// เชื่อมต่อเดต้าเบส และเทเบิ้ล
$sql = "select qty from tb_stock where productname='{$_GET["prodname"]}' limit 1";
$res = mysql_query($sql) or die(mysql_error()."[$sql]");
$data = mysql_fetch_assoc($res);
if($data["qty"] < $_GET["requireqty"]){
    echo "มีสินค้าไม่เพียงพอต่อความต้องการ [มีจำนวน:'{$data["qty"]}' ]";
}
// ถ้ามีพอก็ไม่ต้อง echo อะไรออกไป เพราะใน callback function ของ jquery ใช้วิธีเช็คความยาวของสตริง

}
?>




ทดสอบดูน่ะครับ ผมก็ไม่แน่ใจว่าจะรันผ่านมั๊ย แต่แนวความคิดเป็นแบบนี้หล่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-20 10:40:48 By : sakuraei
 


 

No. 5



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



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

ขอบคุณครับผม เดี๋ยวผมลอง เอาไปใช้แล้วลองรันดูครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-02-20 11:21:39 By : nutzaaclub
 

   

ค้นหาข้อมูล


   
 

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