1. 程式人生 > >ajax編寫購物車遇到的問題

ajax編寫購物車遇到的問題

array each i++ splice request read attr php數組 調用

使用超全局變量$_SESSION[]

1.在文件開始時開啟:session_start();

2.$_SESSION[]輸出結果是數組

3.$_SESSION[]存在緩存中,清理緩存會清除數據

4.可以用來存放常用變量,獲取方式為$_SESSION[“鍵名”]

驗證登錄

用$_SESSION[]判斷登錄傳過來的值是否為空,如果空則調回登錄頁面

<?php
session_start();
if($_SESSION["uid"] ==""){
header("location:login.php");
}
?>

當調用多次相同的方法時,可以將方法封裝,以後調用文件即可

js常用格式

頁面初始化

window.onload = function(){
//初始化頁面
initHTML();
}

function initHTML(){
//創建對象
var xhr=new XMLHttpRequest();
//發起請求
xhr.onreadystatechange =function(){
if(xhr.readyState==4){
var str = xhr.responseText;
var arr=str.split("@");

//將ajax傳過來的值賦給方法
table(arr[1]);
p(arr[0]);

}
}
xhr.open("post","php/index_php.php");
xhr.setRequestHeader(‘content-type‘,‘application/x-www-form-urlencoded‘);
//發送數據
xhr.send("type=init");
}

問題:post傳值後臺接受空值

1.漏寫頭文件

xhr.setRequestHeader(‘content-type‘,‘application/x-www-form-urlencoded‘);

2.傳值的變量沒有正確的獲取到(檢查獲取變量獲取方式)

3.後臺接受方式出錯(以post傳值用get接受)

常用方法

1.php數組轉字符串

將二維數組轉換成字符串

session_start();
$arr=$_SESSION["data"];
if(empty($arr)){
echo "";
}else{
foreach($arr as $k=>$v){
$attr[]=join(",",$v);
}
echo join("^",$attr);
}

2.js將字符串轉換成二維數組

function strToArr(str,fg1,fg2){
//將字符串轉成二維數組
var temp = str.split(fg1),
arr = [];

for(var i = 0; i<temp.length;i++){
arr[i] = temp[i].split(fg2);
}
//返回二維數組
return arr;
}

註:

var dianji=prompt("輸入購買數量");

prompt自帶返回值,可以直接用

array_splice($arr,$k,1);

銷毀數組中從第k個下標開始數1個的元素

字符串拼接技巧

先用“”分割前面的字符串,然後加 ++

例: “name 變量 age 變量”

“name “+變量 +” age “+變量

當一個頁面需要處理多個ajax時

傳一個自定義屬性,區分每個傳過來的ajax

ajax編寫購物車遇到的問題