實作的方法和邏輯代碼注釋都有
class Goods {
constructor() {
Goods.list();
}
// 獲取商品資訊的
// static 靜態方法
// 靜態方法只屬于某個類
static list () {
//發送ajax請求
axios.get('http://localhost/day1012-27/cart2/server/server.php?fn=lst')
.then(res => { //res是后臺回傳的資料
// console.log(res);
//將資料轉化為物件
let { meta, data } = JSON.parse(res);
console.log(meta, data);
//判斷服務器狀態
let html = '';
if (meta.status == 200) {
//資料是陣列物件 取出需要拼接的資料
//需要先回圈
data.forEach(ele => {
let { id, goodsName, goodsImg, price } = ele;
html += `<div class="box"><img src="${goodsImg}" alt=""><p>${goodsName}</p><span
class="goods_item_price" data-price-id="100004222715" style="">¥${price}</span><a
href="javascript:" id="InitCartUrl" class="btn-special1 btn-lg" onclick="Goods.addCart(${id},1)">
加入購物車</a></div>`;
})
//追加到頁面中去
let cont = document.querySelector('#cont')
cont.innerHTML = html;
}
})
}
//添加購物車的方法
static addCart (id, num) {
console.log(id, num);
/*
購物車邏輯:
1 判斷cart這個key是否存在
2 存在就判斷商品是否存在
2-1 商品存在增加數量
2-2 商品不存在則新增
3 不存在則新增cart
*/
//取出local中的資料
let cartGoods = localStorage.getItem('cart');
// console.log(cartGoods);
//2 判斷商品是否存在
if (cartGoods) {
cartGoods = JSON.parse(cartGoods);
//2 判斷商品是否存在
//回圈遍歷 for in 遍歷物件 這里的attr相當于id
for (let attr in cartGoods) {
if (attr == id) { //2-1商品存在增加數量
num = num + cartGoods[id]; //cartGoods[id] 是當前點擊的id id是屬性 取的是它的值 num沒點一次傳輸一次 都是1
}//2-2 商品不存在則新增
}
cartGoods[id] = num; //相當于添加一個屬性和屬性值在 cartGoods物件中
localStorage.setItem('cart', JSON.stringify(cartGoods))
} else {
//3 不存在就新增cart
cartGoods = { [id]: num };
console.log(cartGoods);
//轉化為字串
cartGoods = JSON.stringify(cartGoods);
localStorage.setItem('cart', cartGoods);
}
}
}
new Goods();
PHP部分
<?php
// 執行連接
function con(){
//1 連接
// @ 警告抑制符
$link = @mysqli_connect('127.0.0.1','root','root','test');
// 判斷連接狀態,連接失敗回傳false
//var_dump($link)
if(!$link){
die('連接失敗...');
}
return $link;
}
// 非查詢操作
function query($sql){
// 呼叫連接的函式
$link = con();
$res = mysqli_query( $link,$sql);
return $res;
}
// 查詢操作
function select($sql){
$link = con();
$res = mysqli_query($link,$sql);
//print_r($res);
// 使用while將資料進行遍歷
$arr = [];
while($str = mysqli_fetch_assoc($res)){
$arr[] = $str;
}
return $arr;
}
?>
<?php
include('./mysql.php');
$fn = $_GET['fn'];
$fn();
function lst()
{
$id = $_POST['goodsId'];
$id = substr($id,0,strlen($id)-1);
// 一次性獲取多條資料
$sql = "select * from product where id in ($id)";
// echo $sql;
$data = select($sql);
echo json_encode([
'meta'=>[
'status'=>200,
'msg'=>'成功'
],
'data'=>$data
]);
}
?>
<?php
include('./mysql.php');
// 獲取訪問的方法名稱
$fn = $_GET['fn'];
// add();
$fn(); // add()
// 查詢資料
function lst(){
$sql = 'select * from product';
$res = select($sql);
if($res){
echo json_encode([
"meta"=>[
"status"=>200,
"msg"=>"資料獲取成功"
],
"data"=>$res
]);
}
}
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/181152.html
標籤:其他
上一篇:用正則運算式實作表單驗證提交
下一篇:部分前端開發問題解決
