|
|
|
ขอถามเรื่องการใช้ function clear ใน ajax shopping cart หน่อยครับ |
|
|
|
|
|
|
|
ถ้าส่วนนี้ คือ ค่าที่จะส่งไป
var pmeters = "tProductID=" + productid+"&tQty=" + Qty+"&tsize=" + Psize;
ก็แสดงว่า คุณยังไม่ได้ประกาศ productid , Qty , Psize มันก็หาค่าไม่เจอหรอกครับ ว่าจะส่งอะไรไป ถูกไหม ????
|
|
|
|
|
Date :
2011-09-12 07:58:50 |
By :
kalamell |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนหน่อยครับ ผมใช้ ajax ไม่เป็นน่ะ
อันนี้เป็นโค้ดหน้า ajax ครับ ผมต้องเขียนโค้ดยังไงครับ เพื่อที่จะให้มันเคลียค่าทั้งหมดโดยไม่ต้องบันทึก
ajax ที่ทำงานตอนนี้คือ มันจะเคลียค่าก็ต่อเมื่อบันทึกข้อมูลแล้วน่ะครับ
Code (PHP)
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax(ProductID,Qty) {
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 = 'AjaxPHPShoppingCart2.php';
var pmeters = "tProductID=" + ProductID+
"&tQty=" + Qty;
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("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById('mySpan').innerHTML = HttPRequest.responseText;
}
}
}
function CheckOut()
{
window.location = 'AjaxPHPShoppingCart3.php';
}
</script>
หน้าที่รับค่ามาจากหน้า ajax
หน้า AjaxPHPShoppingCart2.php
Code (PHP)
<?php
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/
session_start();
$strProductID = $_POST["tProductID"];
$strQty = $_POST["tQty"];
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
if($strProductID != "" and $strQty != "")
{
$strSQL = "INSERT INTO cart ";
$strSQL .="(SID,ProductID,Qty) ";
$strSQL .="VALUES ";
$strSQL .="('".session_id()."','".$strProductID."','".$strQty."') ";
$objQuery = mysql_query($strSQL);
}
?>
<center>
<h1>Your Cart</h1>
<table width="408" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="51"><div align="center">ID</div></td>
<td width="154" height="26"><div align="center">Product</div></td>
<td width="69"><div align="center">Price</div></td>
<td width="57"><div align="center">Qty</div></td>
<td width="65"><div align="center">Total</div></td>
</tr>
<?
$intSumTotal = 0;
$intRows = 0;
$strSQL = "SELECT * FROM cart WHERE SID = '".session_id()."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
$intRows ++;
//*** Product ***//
$strSQL = "SELECT * FROM product WHERE ProductID = '".$objResult["ProductID"]."' ";
$objQueryPro = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResultPro = mysql_fetch_array($objQueryPro);
$intTotal = $objResult["Qty"] * $objResultPro["Price"];
$intSumTotal = $intSumTotal + $intTotal;
?>
<tr>
<td><div align="center"><?=$intRows;?></div></td>
<td><?=$objResultPro["ProductName"];?></td>
<td><div align="right"><?=number_format($objResultPro["Price"],2);?></div></td>
<td><div align="center"><?=$objResult["Qty"];?></div></td>
<td><div align="right"><?=number_format($intTotal,2);?></div></td>
</tr>
<?
}
?>
<tr>
<td colspan="4"><div align="right">Total Amount </div></td>
<td>
<div align="right"><?=number_format($intSumTotal,2);?></div></td>
</tr>
</table>
<?
if($intSumTotal > 0)
{
?>
<br><input name="btnCheckOut" type="submit" id="btnCheckOut" value="Check Out" onClick="JavaScript:CheckOut();">
<?
}
?>
</center>
|
ประวัติการแก้ไข 2011-09-12 11:14:50
|
|
|
|
Date :
2011-09-12 09:37:39 |
By :
ozma |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณต้องประกาศก่อนว่า ProductionID และ Qty ใช้เลยไม่ได้หรอก ต้องบอกที่มาที่ไหน
เช่น
var ProductID=document.getElementById("productid").value;
var Qty=document.getElementById("qty").value;
แล้วค่อย
var pmeters = "tProductID=" + ProductID+"&tQty=" + Qty;
เพราะที่คุณเขียนมาข้างต้น ยังไม่มีส่วนไหนเลยที่ไปกำหนดตัวแปร ProductID กับ Qty;
แล้ว ส่วนที่ เคลีย์ค่าเลย ต้องไปกำหนดที่ตรงนี้
if(HttPRequest.readyState == 4) // Return Request
{
document.getElementById('mySpan').innerHTML = HttPRequest.responseText;
// เพิ่ม
document.getElementById("productid").value="";
document.getElementById("qty").value="";
}
แต่ก็ต้องดูอีกทีว่า input textbox ของคุณ ถูกกำหนด ด้วย id ว่าอะไร ก็กำหนดตามนั้น
ถ้าไปใช้ jquery มันจะ สั้นกว่านี้เยอะครับผม เหอๆ
เช่น
$("form").live('submit',function(){
var productid=$("input[name=productid]");
var qty=$("input[name=qty]");
if(productid.val()==""){
productid.focus();
return false;
}
if(qty.val()==""){
qty.focus();
return false;
}
$.ajax({
url:"AjaxPHPShoppingCart2.php",
type:"POST",
data:"tProductID=" + productid.val()+"&tQty=" + qty.val();
success:function(res){
$("#mySpan").html(res);
productid.val(""); // clear ค่า
qty.val(""); // clear ค่า
},
error:function(err){
alert("error : "+err);
}
});
return false; // ไม่ให้มัน refresh
});
|
ประวัติการแก้ไข 2011-09-12 14:48:13 2011-09-12 14:53:00
|
|
|
|
Date :
2011-09-12 14:47:45 |
By :
kalamell |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|