ホームページ  >  記事  >  ウェブフロントエンド  >  Ajax + PHP を使用したショッピング カートの作成に関する詳細なチュートリアル

Ajax + PHP を使用したショッピング カートの作成に関する詳細なチュートリアル

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-31 15:05:072048ブラウズ

今回は、Ajax + PHP でショッピング カートを作成する方法についての詳細なチュートリアルをお届けします。 。 ショッピングカートWebページのコード、具体的な内容は以下の通りです

1. ログインインターフェースloginchuli.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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head>
<body>
<p>用户名:<input type="text" id="uid" /></p>
<p>密码:<input type="text" id="pwd" /></p>
<input type="button" value="登录" id="btn" />
</body>
<script type="text/javascript">
$("#btn").click(function(){
  var uid = $("#uid").val();
  var pwd = $("#pwd").val();
  $.ajax({
      url:"loginchuli.php",
      data:{u:uid,p:pwd},
      type:"POST",
      dataType:"TEXT",
      success: function(data){
        if(data.trim()=="OK")
        {
          window.location.href="main.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
        }
        else
        {
          alert("用户名或密码错误");
        }
      }
    })
  })
</script>
</html>

3. 購入処理ページ goumai.php

<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
$uid = $_POST["u"];
$pwd = $_POST["p"];
$sql = "select password from login where username=&#39;{$uid}&#39;";
$mm = $db->StrQuery($sql);
if($mm==$pwd && $pwd!="")
{
  $UserName = $_POST["uid"];
  $_SESSION["uid"]=$uid;
  echo "OK";
}
else
{
  echo "NO";
}

5. 注文処理ページでは、選択したフルーツの合計金額と残りのフルーツの量が計算されます。 dingdan.php

<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title><br />
<style type="text/css">
.list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
</style>
</head>
<body>
<p style="width:100%; height:100px; background-color:#6CC">
  <h1 style="float:left">大苹果商城</h1>
  <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
</p>
<br />
<p style="width:100%; height:600px">
  <p id="left" style="width:20%; float:left">
    <a href="main.php"><p class="list">浏览商品</p></a>
    <a href="zhanghu.php"><p class="list">查看账户</p></a>
    <a href="gouwuche.php"><p class="list">查看购物车</p></a>
  </p>
  
  <p id="right" style="width:80%; float:left">
<?php
  $agwc = array();
  if(!empty($_SESSION["gwc"]))
  {
    $agwc = $_SESSION["gwc"];
  }
  $zhonglei = count($agwc);
  $sum = 0;
  foreach($agwc as $v)
  {
    $sql = "select price from fruit where ids=&#39;{$v[0]}&#39;";
    $danjia = $db->StrQuery($sql);
    $sum = $sum +$danjia*$v[1];
  }
  echo "<p>购物车中有:{$zhonglei}种商品,总价格为:{$sum}元.</p>";
  ?>
    <table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
      <td>代号</td>
      <td>水果名称</td>
      <td>水果价格</td>
      <td>源产地</td>
      <td>库存量</td>
      <td>操作</td>
    </tr>
 <?php   
    $sql = "select * from fruit";
    $attr = $db->Query($sql);
    
    foreach($attr as $v)
    {
      echo "<tr><td>{$v[0]}</td>
      <td>{$v[1]}</td>
      <td>{$v[2]}</td>
      <td>{$v[3]}</td>
      <td>{$v[4]}</td>
      <td><a href=&#39;goumai.php?code={$v[0]}&#39;>购买</a></td></tr>";
    }
    ?>    
    </table>
  </p>
</p>
</body>
</html>

6. ショッピングカートページ

<?php
session_start();
$code = $_GET["code"];
if(empty($_SESSION["gwc"]))
{
  //第一次点击购买
  $attr = array(
    array($code,1)
  );
  $_SESSION["gwc"] = $attr;
}
else
{
  //不是第一次点击购买
  $attr = $_SESSION["gwc"];
  $bs=0;
  foreach($attr as $k=>$v)
  {
    if($v[0]==$code)
    {
      $bs=1;
      $attr[$k][1] = $attr[$k][1]+1;
    }
  }
  //如果没有在数组里面出现
  if($bs==0)
  {
    $shuzu = array($code,1);
    $attr[] = $shuzu;
  }
  
  $_SESSION["gwc"]=$attr;
  
}
header("location:main.php");

7. ショッピングカートページ削除処理ページshanchu.php

<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
$uid = $_SESSION["uid"];
$attr = array();
if(!empty($_SESSION["gwc"]))
{
  $attr = $_SESSION["gwc"];
}
//看下两个条件是否都满足
$bs = true;
//判断余额是否满足
  //根据用户名找余额
  $syue = "select account from login where username=&#39;{$uid}&#39;";
  $yue = $db->StrQuery($syue);
  
  //根据购物车数组取总金额
  $sum = 0;
  foreach($attr as $v)
  {
    $sql = "select price from fruit where ids='{$v[0]}'";
    $danjia = $db->StrQuery($sql);
    $sum = $sum +$danjia*$v[1];
  }
  if($yue<$sum)
  {
    $bs = false;
    echo "YEBUZU";
    exit;
  }
  
//判断库存是否满足
foreach($attr as $v)
{
  $skucun = "select name,numbers from fruit where ids=&#39;{$v[0]}&#39;";
  $akucun = $db->Query($skucun);
  if($akucun[0][1]<$v[1])
  {
    $bs = false;
    echo "{$akucun[0][0]}库存不足!";
    exit;
    
  }
}
//添加订单,减库存,减余额
if($bs)
{
  //减库存
  foreach($attr as $v)
  {
    $sql = "update fruit set numbers = numbers-{$v[1]} where ids=&#39;{$v[0]}&#39;";
    $db->Query($sql,0);
  }
  
  //减余额
  $jianyue="update login set account=account-{$sum} where username='{$uid}'";
  $db->Query($jianyue,0);
  
  //添加订单
  $dingdanhao = $uid+date("YmdHis");
  $t = time();
  
  $sorder = "insert into orders values('{$dingdanhao}','{$uid}','{$t}')";
  $db->Query($sorder,0);
  
  foreach($attr as $v)
  {
    $sxq = "insert into orderdetails values('','{$dingdanhao}','{$v[0]}','{$v[1]}')";
    $db->Query($sxq,0);
  }
}
echo "OK";

この記事の事例を読んだ後、あなたは方法をマスターしたと思います。 PHP 中国語 Web サイトの他の関連記事にも注目してください。

推奨読書:

AJAX ページング効果を実装する方法

リストと 2 番目のドロップダウン メニュー オプションの無限ロードを実現するための Ajax (コード付き)

以上がAjax + PHP を使用したショッピング カートの作成に関する詳細なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。