Ajax和PHP session制作购物车实例详解
本文主要为大家详细介绍了Ajax结合PHP session制作购物车,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。
购物车网页代码,具体内容如下:
1.登录界面login.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>
2.登录处理页面loginchuli.php
<?php session_start(); include("../DBDA.class.php"); $db = new DBDA(); $uid = $_POST["u"]; $pwd = $_POST["p"]; $sql = "select password from login where username='{$uid}'"; $mm = $db->StrQuery($sql); if($mm==$pwd && $pwd!="") { $UserName = $_POST["uid"]; $_SESSION["uid"]=$uid; echo "OK"; } else { echo "NO"; }
3.主页面main.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='{$v[0]}'"; $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='goumai.php?code={$v[0]}'>购买</a></td></tr>"; } ?> </table> </p> </p> </body> </html>
4.购买处理页面goumai.php
<?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");
5.订单处理页面,计算选取水果的总价,和水果剩余量。dingdan.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='{$uid}'"; $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='{$v[0]}'"; $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='{$v[0]}'"; $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";
6.购物车页面
<?php session_start(); ?> <!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> <script src="../../jquery-1.11.2.min.js"></script> </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"> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>商品名称</td> <td>商品单价</td> <td>购买数量</td> <td>操作</td> </tr> <?php include("../DBDA.class.php"); $db = new DBDA(); $attr=array(); if(!empty($_SESSION["gwc"])) { $attr = $_SESSION["gwc"]; } foreach($attr as $k=>$v) { $sql = "select name,price from fruit where ids='{$v[0]}'"; $ashuiguo = $db->Query($sql); echo "<tr><td>{$ashuiguo[0][0]}</td><td>{$ashuiguo[0][1]}</td><td>{$v[1]}</td><td><a href='shanchu.php?sy={$k}'>删除</a></td></tr>"; } ?> </table> <p id="tj">提交订单</p><p id="ts"></p> </p> </p> <script type="text/javascript"> $("#tj").click(function(){ $.ajax({ url:"dingdan.php", dataType:"TEXT", success: function(data){ if(data.trim()=="OK") { alert("购买成功"); } else if(data.trim()=="YEBUZU") { $("#ts").html("余额不足"); $("#ts").css("color","red"); } else { $("#ts").html(data); $("#ts").css("color","red"); } } }); }) </script> </body> </html>
7.购物车页面删除处理页面shanchu.php
<?php session_start(); $sy = $_GET["sy"]; $attr = $_SESSION["gwc"]; if($attr[$sy][1]>1) { $attr[$sy][1] = $attr[$sy][1]-1; } else { unset($attr[$sy]); $attr = array_values($attr); } $_SESSION["gwc"]=$attr; header("location:gouwuche.php"); 8.账户余额页面zhanghu.php <?php session_start(); $uid = $_SESSION['uid']; ?> <!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%; height:150px; float:left"> <?php include("../DBDA.class.php"); $db = new DBDA(); $sql = "select Account from login where UserName='{$uid}'"; $result = $db->strQuery($sql); echo ("您的账户中还剩余".$result); ?> </p> </p> </body> </html>
相关推荐:
Atas ialah kandungan terperinci Ajax和PHP session制作购物车实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Tajuk: Kaedah dan contoh kod untuk menyelesaikan ralat 403 dalam permintaan AJAX jQuery Ralat 403 merujuk kepada permintaan bahawa pelayan melarang akses kepada sumber Ralat ini biasanya berlaku kerana permintaan itu tidak mempunyai kebenaran atau ditolak oleh pelayan. Apabila membuat permintaan jQueryAJAX, anda kadangkala menghadapi situasi ini Artikel ini akan memperkenalkan cara menyelesaikan masalah ini dan memberikan contoh kod. Penyelesaian: Semak kebenaran: Mula-mula pastikan alamat URL yang diminta adalah betul dan sahkan bahawa anda mempunyai kebenaran yang mencukupi untuk mengakses sumber tersebut.

jQuery ialah perpustakaan JavaScript popular yang digunakan untuk memudahkan pembangunan sisi klien. AJAX ialah teknologi yang menghantar permintaan tak segerak dan berinteraksi dengan pelayan tanpa memuatkan semula keseluruhan halaman web. Walau bagaimanapun, apabila menggunakan jQuery untuk membuat permintaan AJAX, anda kadangkala menghadapi 403 ralat. Ralat 403 biasanya ralat akses yang dinafikan pelayan, mungkin disebabkan oleh dasar keselamatan atau isu kebenaran. Dalam artikel ini, kami akan membincangkan cara menyelesaikan permintaan jQueryAJAX yang menghadapi ralat 403

Tutorial praktikal: Penjelasan terperinci tentang fungsi troli beli-belah dengan PHP dan MySQL Fungsi troli beli-belah adalah salah satu fungsi biasa dalam pembangunan laman web Melalui troli beli-belah, pengguna boleh menambah barang yang ingin dibeli ke troli beli-belah, dan kemudian teruskan dengan penyelesaian dan pembayaran. Dalam artikel ini, kami akan memperincikan cara melaksanakan fungsi troli beli-belah yang mudah menggunakan PHP dan MySQL dan memberikan contoh kod khusus. Untuk mencipta pangkalan data dan jadual data, anda perlu mencipta jadual data dalam pangkalan data MySQL terlebih dahulu untuk menyimpan maklumat produk. Berikut ialah jadual data ringkas

Menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP adalah senario biasa dalam pembangunan web Melalui Ajax, halaman boleh diperoleh secara dinamik tanpa menyegarkan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP, dan memberikan contoh kod khusus. Pertama, kita perlu menulis fail PHP untuk mengendalikan permintaan Ajax dan mengembalikan pembolehubah yang diperlukan. Berikut ialah kod contoh untuk fail PHP mudah getData.php:

Bagaimana untuk menyelesaikan masalah jQueryAJAX ralat 403? Apabila membangunkan aplikasi web, jQuery sering digunakan untuk menghantar permintaan tak segerak. Walau bagaimanapun, kadangkala anda mungkin menghadapi kod ralat 403 apabila menggunakan jQueryAJAX, menunjukkan bahawa akses dilarang oleh pelayan. Ini biasanya disebabkan oleh tetapan keselamatan bahagian pelayan, tetapi terdapat cara untuk mengatasinya. Artikel ini akan memperkenalkan cara menyelesaikan masalah ralat jQueryAJAX 403 dan memberikan contoh kod khusus. 1. membuat

Bina enjin cadangan autolengkap menggunakan PHP dan Ajax: Skrip sisi pelayan: mengendalikan permintaan Ajax dan mengembalikan cadangan (autocomplete.php). Skrip pelanggan: Hantar permintaan Ajax dan cadangan paparan (autocomplete.js). Kes praktikal: Sertakan skrip dalam halaman HTML dan nyatakan pengecam elemen input carian.

Ajax (JavaScript Asynchronous dan XML) membenarkan menambah kandungan dinamik tanpa memuatkan semula halaman. Menggunakan PHP dan Ajax, anda boleh memuatkan senarai produk secara dinamik: HTML mencipta halaman dengan elemen kontena dan permintaan Ajax menambah data pada elemen selepas memuatkannya. JavaScript menggunakan Ajax untuk menghantar permintaan kepada pelayan melalui XMLHttpRequest untuk mendapatkan data produk dalam format JSON daripada pelayan. PHP menggunakan MySQL untuk menanyakan data produk daripada pangkalan data dan mengekodnya ke dalam format JSON. JavaScript menghuraikan data JSON dan memaparkannya dalam bekas halaman. Mengklik butang mencetuskan permintaan Ajax untuk memuatkan senarai produk.

Ajax bukanlah versi khusus, tetapi teknologi yang menggunakan koleksi teknologi untuk memuatkan dan mengemas kini kandungan halaman web secara tidak segerak. Ajax tidak mempunyai nombor versi tertentu, tetapi terdapat beberapa variasi atau sambungan ajax: 1. jQuery AJAX 2. Axios 4. JSONP 5. XMLHttpRequest 7. Server; -Acara Dihantar; 8, GraphQL, dsb.
