|
|
|
ช่วยดูให้หน่อยครับ ผมทำเว็บขายของออนไลน์ มีปัญหาเกี่ยวกับการแสดงรูปแบบเงินในตะกร้าสินค้า เป็นแบบ Ajax น่ะครับ |
|
|
|
|
|
|
|
ช่วยดูให้หน่อยครับ ผมทำเว็บขายของออนไลน์ มีปัญหาเกี่ยวกับการแสดงรูปแบบเงินในตะกร้าสินค้า เป็นแบบ Ajax น่ะครับ
ตรงส่วนนี้ผมใส่โค้ดฟังชั่นให้แสดงตัวเลขเป็นรูปแบบเงิน หรือรูปแบบมีคอมม่า แต่พอใส่เข้าไปมันทำให้การคำนวนตัวเลขแบบ Ajax มันแปลกๆไปอ่าครับ คือ พอคลิกตะกร้าสินค้ามันก็แสดงรายการสินค้าพร้อมคำนวนให้ปรกติ แต่พอเปลี่ยนจำนวนเท่านั้นแหละครับ ผลรวมของสินค้าแต่ละรายการมันคูณกัน เฉพาะตัวเลข 2 หลักหน้า แถมตัวเลขที่มีคอมม่าก็หายไปด้วย งงป่าวครับ ดูตัวอย่างจริงที่ลิงค์นี้เลยครับ
http://www.smallidea.net/webcart/
ลองคลิก "หยิบใส่ตะกร้า" ตรงสินค้า แล้วคลิก "สินค้าในตะกร้า" มุมขวาบนดูครับ แล้วลองเปลี่ยนตัวเลขจำนวนดูครับ ราคารวมมันจะบวกเฉพาะเลข 2 หลักหน้า แถมตัวเลขที่มีคอมม่าหายไปด้วยครับ อยากให้มันคำนวนให้ถูกต้องพร้อมกับแสดงรูปแบบตัวเลขที่มีคอมม่านะครับ ช่วยหน่อยนะครับ^^
ไฟล์ครับ
mycart.php
Code (PHP)
<?php
session_start();
include "function.php";
include "dbconfig.php";
include "config.php";
conndb();
?>
<script type="text/javascript">
function format1(n) {
return n.toFixed(2).replace(/./g, function(c, i, a) {
return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c;
});
}
function deleteProduct(ele){
var CartEle=$(ele).parent().parent().attr('id');
var CartId=$(ele).parent().parent().attr('id').split("-");
$.ajax({
url:"chkcart.php?cartdel="+CartId[1],
dataType: 'json',
success: function(data) {
$('.cart_num').html(data.num);
$('.cart_quantity').html(data.quantity);
$('.cart_price').html(data.price);
$('.productTable tr#'+CartEle+'').remove();
}
});
}
function updateProduct(ele){
var Pd=$(ele).parent().parent().attr('id').split("-");
var quantity=$(ele).val();
var linetotal =0;
var price = $(ele).parent().prev().text();
var qty = $(ele).val();
$.ajax({
url:"chkcart.php",
type: 'POST',
data: {product_id:Pd[0],updatecart:Pd[1], quantity:quantity},
dataType: 'json',
success: function(data) {
$('.cart_num').html(data.num);
$('.cart_quantity').html(data.quantity);
$('.cart_price').html(data.price);
linetotal = parseFloat(price) * parseFloat(qty);
//$(ele).parents("tr").find("td.linetotal").text(linetotal);
$(ele).parent().next().text(linetotal);
}
});
}
</script>
<script Language="Javascript">
<!--
function Conf(object)
{
if (confirm("ยืนยันการสั่งซื้อ ?") == true) {
parent.location='confirm_order.php';
return false;
}
return false;
}
//-->
</script>
<link href="css/style_demo.css" rel="stylesheet" type="text/css">
<table width="750" border="0" align="left" cellpadding="2" cellspacing="2">
<tr>
<td align="center" bgcolor="#FFFFFF"><img src="images/shopping_cart_header.png" width="750" height="102" />
<table width="750" class="productTable" border="0" cellpadding="5" cellspacing="0" style="border-bottom:#DADADA solid 2px;background:#9C0;">
<tr bgcolor="#FFFF99">
<td width="8%" align="center" bgcolor="#34ccff"><span class="text_14_black_bold">ลำดับ</span></td>
<td width="54%" align="center" bgcolor="#34ccff"><span class="text_14_black_bold"><b>ชื่อสินค้า</b></span></td>
<td width="13%" align="center" bgcolor="#34ccff"><span class="text_14_black_bold"><b>ราคาต่อหน่วย</b></span></td>
<td width="8%" align="center" bgcolor="#34ccff"><span class="text_14_black_bold"><b>จำนวน</b></span></td>
<td width="10%" align="center" bgcolor="#34ccff"><span class="text_14_black_bold"><b>ราคารวม</b></span></td>
<td width="7%" align="center" bgcolor="#34ccff"><span class="text_14_black_bold"><strong>ลบ</strong></span></td>
</tr>
<?
$no =1;
if(count($_SESSION["cartNumber"])>0){#จำนวนข้อมูลที่มีอยู่หากมากกว่า0
foreach($_SESSION["cartNumber"] as $RowCount){#วนลูปดึงข้อมูลสินค้าออกมาให้ครบตามจำนวนข้อมูลที่มีอยู่
$rs_showpd=mysql_fetch_array(mysql_query("SELECT* FROM product_tb WHERE id=".$_SESSION[$RowCount][0].""));
/*if($rs_showpd["unit_have"]<1){#ตรวจสอบจำนวนสินค้า หากจำนวนสินค้าเท่ากับ0
echo "<script>";
echo "alert('ขออภัยสินค้า \"".$rs_showpd["product_name"]."\" หมดแล้ว');window.location='chkcart.php?del=".$RowCount."';";
echo "</script>";
exit();
}else if($_SESSION[$RowCount][1]>$rs_showpd["unit_have"]){#จำนวนสินค้ามากกว่าจำนวนสินค้าในร้าน
echo "<script>";
echo "alert('จำนวนสินค้าของ \"".$rs_showpd["product_name"]."\" มีมากกว่าจำนวนสินค้าในร้าน');";
echo "</script>";
$_SESSION[$RowCount][1]=$rs_showpd["unit_have"];#เซตจำนวนสินค้าใหม่ให้มีค่่าเท่ากับจำนวนสินค้าในร้าน
}*/
?>
<tr id="<?=$rs_showpd["id"]?>-<?=$RowCount?>">
<td bgcolor="#FFFFFF"><span class="text_14_black_normal">
<?=$no; ?></span></td>
<td height="23" bgcolor="#FFFFFF" class="text_14_black_normal">
<?=$rs_showpd["product_name"]#ชื่อสินค้า?></td>
<td align="center" bgcolor="#FFFFFF" class="text_14_black_normal"><?=get_money_format($rs_showpd["priceperunit"])#ชื่อสินค้า?></td>
<td align="center" bgcolor="#FFFFFF"><input name="unit_have" type="text" class="input_form_gray" id="unit_have" style="text-align:center;" onkeyup="updateProduct(this);" value="<?=$_SESSION[$RowCount][1]#จำนวนสินค้า?>" size="5"/></td>
<td align="center" bgcolor="#FFFFFF" class="linetotal"><?=get_money_format($TotalPriceAmount=$_SESSION[$RowCount][2]*$_SESSION[$RowCount][1])#ราคาสินค้า?></td>
<td align="center" bgcolor="#FFFFFF"><a href="#" onclick="deleteProduct(this); return false;"><img src="images/delete.png" width="20" height="20" border="0"/></a></td>
</tr>
<?
$TotalAmount+=$_SESSION[$RowCount][1];#คำนวณหาจำนวนสินค้าทั้งหมด
$TotalPrice+=$TotalPriceAmount;#คำนวณหาราคาสินค้าทั้งหมด
$no++;
}
?>
<tr style="border-bottom:#DADADA 1px solid;">
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td height="23" align="right" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><b><span class="text_14_black_bold">ราคารวม</span></b></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><strong> <span class="cart_quantity">
<?= $TotalAmount?>
</span> </strong></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><strong> <span class="cart_price">
<?=get_money_format($TotalPrice)?>
</span> </strong></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
</tr>
<?
if($use_vat == 1)
{
?>
<tr style="border-bottom:#DADADA 1px solid;">
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td height="23" align="right" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><b> <span class="text_14_black_bold">ภาษีมูลค่าเพิ่ม (7%)</span></b></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><strong><span class="cart_price">
<?= $TotalPrice*0.07?>
</span></strong></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
</tr>
<tr style="border-bottom:#DADADA 1px solid;">
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td height="23" align="right" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><b class="text_14_black_bold"> ราคารวมภาษีมูลค่าเพิ่ม (7%)</b></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"><strong><span class="cart_price">
<?= $TotalPrice+$TotalPrice*0.07?>
</span></strong></td>
<td align="center" bgcolor="#34ccff" style="border-bottom:#DADADA solid 1px;"> </td>
</tr>
<?
}
?>
<? } else { ?>
<tr>
<td height="23" colspan="6" align="center" bgcolor="#34ccff"><strong class="text_14_white_bold">ไม่พบสินค้าในตระกร้า</strong></td>
</tr>
<? } ?>
</table>
<br>
<INPUT TYPE="button" class="btn" onClick="return Conf(this);" VALUE="ยืนยันการสั่งซื้อ"></td>
</tr>
</table>
chkcart.php
Code (PHP)
<?php
session_start();
include "function.php";
include "dbconfig.php";
include "config.php";
conndb();
function getjson_cart(){
if(count($_SESSION["cartNumber"])>0){
$TotalAmount=0;$TotalPrice=0;
foreach($_SESSION["cartNumber"] as $RowCount){
$TotalAmount+=$_SESSION[$RowCount][1];#คำนวณหาจำนวนสินค้าทั้งหมด
$TotalPrice+=($_SESSION[$RowCount][2]*$_SESSION[$RowCount][1]);#คำนวณหาราคาสินค้าทั้งหมด
}
echo '{"num":"'.count($_SESSION["cartNumber"]).'","quantity":"'.$TotalAmount.'","price":"'.$TotalPrice.'"}';
}else{
echo '{"num":"0","quantity":"0","price":"0"}';
}
}
if(isset($_GET["cartid"])){#Add to cart
$cid=$_GET["cartid"];
$_SESSION["cartcount"]++;
$cartcount=$_SESSION["cartcount"];
$CItemCount="cart$cartcount";
$CartStatus="";#เอาไว้เก็บสถานะสินค้าว่าลูกค้าเลือกซ้ำหรือไม่
$rs_showpd=mysql_query("SELECT * FROM product_tb WHERE id=".$cid."");
$showpd=mysql_fetch_array($rs_showpd);
if(count($_SESSION["cartNumber"])!=0 ){
foreach($_SESSION["cartNumber"] as $RecCart){
if($_SESSION[$RecCart][0]==$cid){#หากสินค้าซ้ำกับของเดิม(โดยตรวจสอบจาก ID ของสินค้า)
$_SESSION[$RecCart][1]++;#เพิ่มจำนวนสินค้า
$CartStatus="double";#เปลี่ยนสถานะ
}
}
}
if($CartStatus==""){#สถานะเป็นค่าว่าง แสดงว่าสินค้าไม่ซ้ำกับของเดิม
$_SESSION[$CItemCount][0]=$cid;//รหัสสินค้า
$_SESSION[$CItemCount][1]=1;//จำนวนเริ่มต้น
$_SESSION[$CItemCount][2]=$showpd['priceperunit'];//ราคา
$_SESSION[$CItemCount][3]='';//ความต้องการเพิ่มเติม เซตให้เป็นค่าว่างก่อน เพราะเป็นค่าเริ่มต้น
$_SESSION["cartNumber"][$cartcount]=$CItemCount;#ตำแหน่งของแต่ละเรคคอร์ดของสินค้า
}
getjson_cart();
mysql_free_result($rs_showpd);
mysql_close($conn);
}
if(isset($_GET["cartdel"])){
$RecDel=$_GET["cartdel"];
foreach($_SESSION["cartNumber"] as $RecCart){#วนไปจนกว่าจะเจอแถวของสินค้าที่เลือกลบ
if($RecCart==$RecDel){
$CNum =preg_replace("/[^0-9]/", '', $RecCart); // คัดเอาเฉพาะตัวเลข เช่น cart1 จะได้ ค่า 1 เป็นต้น
unset($_SESSION['cartNumber'][$CNum]); // unset แถวที่เก็บสินค้าที่ต้องการลบ
}
unset($_SESSION[$RecDel]);#unset ข้อมูลสินค้าที่เก็บไว้ทั้งหมด
}
getjson_cart();
}
if(isset($_POST["updatecart"])){#ต้องการแก้ไขจำนวนสินค้า
$pdid=$_POST["product_id"];#รหัสของสินค้าทั้งหมด(จัดเก็บไว้ในรูป Array)
$cartRows =$_POST["updatecart"];#จำนวน Record ของแถวทั้งหมดของสินค้า(จัดเก็บไว้ในรูป Array)
$pamount=$_POST["quantity"];#จำนวน Record ของสินค้า(จัดเก็บไว้ในรูป Array)
/*
if($pamount>0){#เอาเฉพาะจำนวนสินค้าที่มากกว่า0
$rs_record=mysql_fetch_array(mysql_query("SELECT unit_have,unit_have FROM product_tb WHERE id=".$pdid.""));
if($pamount>$rs_record[1]){#หากจำนวนที่ลูกค้าระบุมากกว่าจำนวนที่มีอยู่ในร้าน
$_SESSION[$cartRows][1] = $rs_record[1];#เซตจำนวนสินค้าใหม่ให้มีค่าเืท่ากับจำนวนสินค้าในร้าน
}else{#หากจำนวนสินค้าที่ลูกค้าระบุน้อยกว่าหรือเืท่ากับจำนวนสินค้าที่มีอยู่ในร้าน
$_SESSION[$cartRows][1] = $pamount ; #เซตจำนวนสินค้าใหม่ให้มีค่าเท่ากับจำนวนที่ลูกค้าระบุ
}
}
*/
if($pamount>0){#เอาเฉพาะจำนวนสินค้าที่มากกว่า0
$_SESSION[$cartRows][1] = $pamount ; #เซตจำนวนสินค้าใหม่ให้มีค่าเท่ากับจำนวนที่ลูกค้าระบุ
}
getjson_cart();
}
?>
function.php
Code (PHP)
<?
function DateThai($strDate)
{
$strYear = date("Y",strtotime($strDate))+543;
$strMonth= date("n",strtotime($strDate));
$strDay= date("j",strtotime($strDate));
$strMonthCut = Array("","มกราคม.","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$strMonthThai=$strMonthCut[$strMonth];
return "$strDay $strMonthThai $strYear";
}
function convert_date($date_tmp)
{
if($date_tmp != ""){
$date_tmp_arr = explode("-",$date_tmp);
$str_return = $date_tmp_arr[2]."/".$date_tmp_arr[1]."/".($date_tmp_arr[0]+543);
}
else
{
$str_return = "";
}
return $str_return;
}
function convert_date_for_db($date_tmp)
{
if($date_tmp != ""){
$date_tmp_arr = explode("/",$date_tmp);
$str_return = $date_tmp_arr[2]."-".$date_tmp_arr[1]."-".($date_tmp_arr[0]);
}
else
{
$str_return = "";
}
return $str_return;
}
function convert_time($time_tmp)
{
if($time_tmp != ""){
$time_tmp_arr = explode(":",$time_tmp);
$str_return = $time_tmp_arr[0].":".$time_tmp_arr[1];
}
else
{
$str_return = "";
}
return $str_return;
}
function convert_datetime($datetime_tmp)
{
$datetime_tmp_arr = explode(" ",$datetime_tmp);
if($datetime_tmp_arr[0] != ""){
$date_tmp_arr = explode("-",$datetime_tmp_arr[0]);
$str_return = $date_tmp_arr[2]."/".$date_tmp_arr[1]."/".($date_tmp_arr[0])." ".$datetime_tmp_arr[1];
}
else
{
$str_return = "";
}
return $str_return;
}
function get_money_format($money_tmp)
{
return number_format($money_tmp,0,'.',',');
}
function get_number_format($number_tmp)
{
return number_format($number_tmp,0,'.',',');
}
//=============== Function ในการเลือกข้อมูล ==================
function select($table,$condition)
{
$sql = "select * from $table $condition";
$dbquery = mysql_query($sql);
$result= mysql_fetch_array($dbquery);
return $result;
}
//=============== Function ในการนับจำนวนแถว ==================
function num_record($table,$condition)
{
$sql = "select * from $table $condition";
$dbquery = mysql_query($sql);
$num_rows = mysql_num_rows($dbquery);
return $num_rows;
}
?>
รบกวนช่วยดูให้ด้วยนะครับ พอดีผมเป็น webdesign ที่พอแก้ code php ได้เท่านั้นเอง Ajax นี่ไปไม่เป็นเลยครับ^^'
Tag : PHP, MySQL, Ajax, jQuery
|
ประวัติการแก้ไข 2014-03-14 11:25:26 2014-03-14 12:49:23
|
|
|
|
|
Date :
2014-03-14 11:20:43 |
By :
gamboy123 |
View :
1320 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
ประวัติการแก้ไข 2014-03-14 12:50:55
|
|
|
|
Date :
2014-03-14 11:22:43 |
By :
gamboy123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไม่ได้เลยครับ เอาไปใช้ไม่เป็น T_T
|
|
|
|
|
Date :
2014-03-14 20:00:43 |
By :
gamboy123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<? echo (number_format (ตัวแปรผลรวม) ,2);?>
|
ประวัติการแก้ไข 2014-03-14 20:13:29
|
|
|
|
Date :
2014-03-14 20:12:17 |
By :
windermanes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|