|
|
|
รบกวนขอความรู้หน่อยครับ โค้ด JavaScript มันค้างที่ Loading... ไม่ไปต่อ |
|
|
|
|
|
|
|
คือผมกำลังศึกษาการทำตะกร้าสินค้าครับ การคำนวณทุกอย่างสมบูรณ์ แต่พอจะลบข้อมูล หรืออัพเดทจำนวนสินค้า มันค้างที่ Loading... ไม่ไปหน้าตะกร้าสินค้าต่ออะครับ งง มาก รบกวนท่านผู้รู้ช่วยดูหน่อยครับ
#File ajax-shop.js
Code
// JavaScript Document
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
}
function DelProduct(element){
var id=element;
if (element=="delall"){
var con="คุณต้องการลบรายการทั้งหมดหรือไม่";
}else{
var con="คุณต้องการลบรายการนี้หรือไม่";
}
if(confirm(con)){
var loading = '<img src="images/loading.gif" style="padding:20px 0 0 200px;"> loading..';
document.getElementById('loading').innerHTML= loading;
var req = Inint_AJAX();
req.onreadystatechange = function() {
if (req.readyState==4){
if (req.status==200) {
ListOrder(element);
}
}
}
var str="";
str+="?name=products&file=shop&id="+id;
str+="&op=del";
var rstr;
rstr=Math.random();
str+="&var="+rstr;
var url = "index.php"+str;
req.open("GET", url, true);
req.send(null);
}
}
function Delall(){
var con="คุณต้องการลบรายการทั้งหมดหรือไม่";
if(confirm(con)){
var loading = '<img src="images/loading.gif" style="padding:20px 0 0 200px;"> loading..';
document.getElementById('loading').innerHTML= loading;
var req = Inint_AJAX();
req.onreadystatechange = function() {
if (req.readyState==4){
if (req.status==200) {
//ListOrder(element);
data = req.responseText;
document.getElementById('viewcart').innerHTML = data;
}
}
}
var str="";
str+="?name=products&file=shop";
str+="&op=delall";
var rstr;
rstr=Math.random();
str+="&var="+rstr;
var url = "index.php"+str;
req.open("GET", url, true);
req.send(null);
}
}
function ListOrder(element){
var req = Inint_AJAX();
req.onreadystatechange = function() {
if (req.readyState==4){
if (req.status==200) {
data = req.responseText;
document.getElementById('viewcart').innerHTML = data;
}
}
}
var id=element
var str="";
str+="?name=products&file=shop&op=viewcart";
//str+="&id="+id;
var rstr;
rstr=Math.random();
str+="&var="+rstr;
req.open("GET","index.php"+str,true);
req.send(null);
return false;
}
function UpdateQty(id,qty){
if(isNaN(qty)){
alert("ต้องเป็นตัวเลขเท่านั้น... \nกรุณาตรวจสอบข้อมูลของท่านอีกครั้ง...");
var thisfocus = "qty_"+id;
document.getElementById(thisfocus).value="";
return false;
}else if(qty <= 0){
alert("กรุณากรอตัวเลขมากกว่า 0 ");
var thisfocus = "qty_"+id;
document.getElementById(thisfocus).value="";
return false;
}else{
var req = Inint_AJAX();
var loading = '<img src="images/loading.gif" style="padding:20px 0 0 200px;"> loading..';
document.getElementById('loading').innerHTML= loading;
req.onreadystatechange = function() {
if (req.readyState==4){
if (req.status==200) {
data = req.responseText;
document.getElementById('viewcart').innerHTML = data;
}
}
}
var str="";
str+="?name=products&file=shop&op=update&id="+id+"&quantity="+qty;
var rstr;
rstr=Math.random();
str+="&var="+rstr;
req.open("GET","index.php"+str,true);
req.send(null);
return false;
}
}
Tag : JavaScript, JAVA
|
|
|
|
|
|
Date :
2013-06-27 13:45:58 |
By :
lionnk |
View :
1501 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก function UpdateQty(id,qty) จะเห็นว่ามันจะเข้า Loop Loading ก็ต่อเมื่อ qty ไม่มีค่าส่งมาน่ะครับ
เพราะงั้นควรไปเช็คดูว่า qty ถูส่งมาให้ function นี้หรือเปล่า (ทดสอบง่ายๆ alert(qty) ดูก็น่าจะได้น่ะ)
|
|
|
|
|
Date :
2013-06-27 14:12:58 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code
<?php
session_start();
//---------------------------------------------------------------------------------//
function AddProduct(){
$item = $_GET['id'];
if(isset($_SESSION['cart'][$item])) {
$_SESSION['cart'][$item]++;
} else {
$_SESSION['cart'][$item] = 1;
}
$_SESSION['total_items'] = cart_calculate_items($_SESSION['cart']);
$_SESSION['total_price'] = cart_calculate_price($_SESSION['cart']);
//echo "<meta http-equiv='refresh' content='1; url=?name=products&file=shop&op=viewcart'>" ;
header("Location: ?name=products&file=shop&op=viewcart");
exit;
}// end function
function Viewcart(){
global $db;
$i = 1;
$cart=$_SESSION['cart'];
?>
<table border="0" cellpadding="0" cellspacing="0" width="720">
<tr valign="top">
<td ><a href="index.php"><img src="images/btn_continueshop.jpg" /></a></td>
</tr>
<tr valign="top">
<td ><br />
<?php
if($cart){ // ถ้ามีสินค้า
// session_destroy();
?>
<form name="shop" action="index.php?name=products&file=orders" method="post" >
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1">
<tr valign="middle" height="30" align="center" >
<td width="8%" class="title_basket">ลบ</td>
<td width="40%" class="title_basket" >ชื่อสินค้า</td>
<td width="15%" class="title_basket">จำนวน</td>
<td width="8%" class="title_basket" >ราคา</td>
<td width="10%" class="title_basket">ค่าจัดส่ง / ชิ้น</td>
<td width="10%" class="title_basket">ค่าประกัน / ชิ้น</td>
<td class="title_basket" >รวม</td>
</tr>
<?
$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);
foreach($cart as $productID => $qty) {
$product = $db->select_query("SELECT * FROM ".TB_PRODUCT. " WHERE id = '$productID' ");
$arr=$db->fetch($product);
if($arr['price_promotion'] != 0){
$price_net = $arr['price_promotion'];
}else{
$price_net = $arr['price'];
}
$bgcolor = ($i++ % 2) ? '#e6f2df' : '#e6f2df';
$over="#f2faeb";
?>
<input type="hidden" name="id[]" value="<?php echo $arr['id']; ?>" />
<tr bgcolor="<?php echo $bgcolor;?>" onMouseOver="this.style.backgroundColor='<?php echo $over;?>'" onMouseOut="this.style.backgroundColor='<?php echo $bgcolor;?>'" height="25" >
<td align="center"><a href="javascript:void(0);" onclick="DelProduct('<?php echo $arr['id'];?>');"><img src="images/del.gif" border="0" alt="ลบสินค้า" /></a></td>
<td style="padding:0 5px;"><?php echo $arr['name']?></td>
<td align="center"><? echo qty_combo($qty, $arr['id']);?> <img src="images/action_refresh.gif" style="cursor:pointer;" align="absmiddle" /></td>
<td align="right" style="padding: 0 5px 0 0;"><?php echo number_format($price_net,'','',',') ;?> </td>
<td align="right" style="padding: 0 5px 0 0;">
<?php
//$shipping = $arr['shipping'] * $qty;
$shipping = $arr['shipping'] ; // ค่าขนส่งต่อชิ้น
echo number_format($shipping,'','',',') ;
?>
</td>
<td align="right" style="padding: 0 5px 0 0;">
<?php
//$insurance = $arr['insurance'] * $qty;
$insurance = $arr['insurance']; // ค่าประกันต่อชิ้น
echo number_format($insurance,'','',',') ;
?>
</td>
<td align="right" style="padding: 0 5px 0 0;">
<?php
$total_price_item=($price_net * $qty)+($shipping * $qty)+($insurance * $qty);
echo number_format($total_price_item,'','',',');
?>
</td>
</tr>
<?php
} // end foreach
$db->closedb();
?>
<tr><td colspan="7"> </td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="720">
<tr height="20">
<td colspan="5" bgcolor="#FFFFFF"><strong>รวมราคาสินค้า</strong>
<?php $paymoney = $_SESSION['total_price'];
echo "<span style=\"padding:0 0px 0 130px; font-weight:bold; color:#F00;\">";
echo " \" ".bathformat($paymoney)." \" ";
echo "<span>";
?>
</td>
<td bgcolor="#FFFFFF" colspan="2" align="right" style="padding:0 5px 0 0; font-weight:bold; color: #FF0000;"><?php echo number_format($paymoney, 2, '.', ',');?></td>
</tr>
</table>
<br /><br />
<table width="100%" align="center" cellpadding="0" cellspacing="0" >
<tr><td align="right"><input type="submit" value="สั่งซื้อสินค้า" class="button" />
  <a href="javascript:void(0)" onclick="Delall()" class="button"> ลบสิ้นค้าทั้งหมด </a></td></tr>
</table>
</form>
<?php
}else{ // ยังไม่มีสินค้า
?>
<div style="text-align:center; height:50px; vertical-align:middle; font-weight:bold; font-size:14px; color:#800000;">ยังไม่มีสินค้าในตระกร้า</div>
<?php
}?>
<!-- end td -->
</td>
</tr>
<tr valign="top">
<td > </td>
</tr>
</table>
<?php
}// end
function qty_combo($qty_n, $id) {
?>
<input type="text" name="qty[]" value="<?php echo $qty_n?>" id="qty_<?php echo $id;?>" onchange="UpdateQty('<? echo $id?>',this.value)" size="4" maxlength="4" style="text-align:center;" />
<?
}
function cart_calculate_items($cart) {
$items = 0;
if(is_array($cart)) {
foreach($_SESSION['cart'] as $productID => $qty) {
$items += $qty;
}
}
return $items;
}
// -------------------------------------------------------------------------------
// คำนวณยอดเงินรวมทั้งสิ้น ของสินค้าที่ลูกค้าสั่งซื้อทั้งหมด
// -------------------------------------------------------------------------------
function cart_calculate_price($cart) {
global $db;
$price = 0.00;
if(is_array($cart)) {
$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);
foreach($_SESSION['cart'] as $productID => $qty) {
$sum_price = mysql_query("SELECT * FROM ".TB_PRODUCT." WHERE id = '$productID' ");
$arr=mysql_fetch_array($sum_price);
if($arr['price_promotion'] !=0){
$net_price = $arr['price_promotion'];
}else{
$net_price = $arr['price'];
}
$item_price =$net_price ;
$price += (($item_price*$qty) + ($arr['shipping'] * $qty) + ($arr['insurance'] * $qty)) ;// ราคารวมสินค้า + ค้าประกัน + ค่าขนส่ง
}
$db->closedb();
}
return $price;
}
//---------------------------------------------------------------------------------//
function Delproduct(){
$productID = $_GET['id'];
//echo $productID;
unset($_SESSION['cart'][$productID]);
$_SESSION['total_items'] = cart_calculate_items($_SESSION['cart']);
$_SESSION['total_price'] = cart_calculate_price($_SESSION['cart']);
$s_cart = serialize($_SESSION['cart']);
//header("Location: ?name=products&file=shop&op=viewcart");
//header("Location: request/basket.php?op=viewcart");
header("Location: ?name=products&file=shop&op=viewcart");
exit;
}
function Delall(){
unset($_SESSION['cart']);
session_unregister($_SESSION['cart']);
$_SESSION['total_items'] = cart_calculate_items($_SESSION['cart']);
$_SESSION['total_price'] = cart_calculate_price($_SESSION['cart']);
$s_cart = serialize($_SESSION['cart']);
header("Location: ?name=products&file=shop&op=viewcart");
exit;
}
function Updateproduct(){
$item = $_GET['id'];
// ถ่ายค่าตัวแปร quantity ที่ส่งผ่าน URL ไว้กับตัวแปร $quantity
$quantity = $_REQUEST['quantity'];
if(isset($_SESSION['cart'][$item])) {
$_SESSION['cart'][$item] = $quantity;
}
$_SESSION['total_items'] = cart_calculate_items($_SESSION['cart']);
$_SESSION['total_price'] = cart_calculate_price($_SESSION['cart']);
$s_cart = serialize($_SESSION['cart']);
header("Location: ?name=products&file=shop&op=viewcart");
exit;
}
?>
ประเด็นคือผมซื้อโค้ดเขามาครับ แล้วเอามาโมใสระบบอีกตัว ค่าทุกอย่างก็มานะครับ แต่ค้างที่ Loading ตลอดเลย
|
|
|
|
|
Date :
2013-07-10 14:00:08 |
By :
lionnk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|