首頁
1.首先給要點擊的圖片添加跳轉鏈接,?后加id,利用的是URL地址?后的字符不解析原理傳遞id
2.詳情頁用ajax連接php獲取php返回的數據
function ajax(){
獲取url地址的字符串
var atr =location.search;
然后字符串切割返回的是數組
var num = atr.split('=')[1];
取數組的第二個參數
創建一個對象傳遞參數
var _default = {
method: 'GET', 請求方式為GET,還有POST方式
url: "php/gets.php?id="+num, 請求地址可通過字符串的拼接
data:null, 請求數據
timeout: 1000,定時器
dataType: 'json',數據類型是json格式
success: function(json) { 成功的回調函數,data是php返回的數據
console.log(json)
var json = JSON.parse(json);
因為后台返回的是json字符串格式所以用JSON.parse()的方法轉json對象,注:JSON.stringify()為json轉字符串
var data = json.data;
data為對象里面所需要用數據
var str ='';
var box = document.querySelector('.kddddd');
str = '
'+data.id+'
<img src='+data.pic+'> ';box.innerHTML= str;
}
}
console.log(_default.url);
var xhr =new XMLHttpRequest;
if(_default.url.indexOf('?') == -1) {
_default.url += '?' + Date.now();
} else {
_default.url += '&' + Date.now();
}
xhr.open(_default.method,_default.url,true);創建請求
xhr.send(null);發送請求
監聽狀態
xhr.onreadystatechange = function(){
if(xhr.readyState ==4 && xhr.status == 200){
獲取的json數據為xhr的responseText字符串格式;
var json = xhr.responseText;
獲取成功執行成功的回調函數
_default.success(json);
}
}
}
ajax();
第三步:php獲取id,查找數據庫,返回數據給ajax
connect_error){
die("連接失敗".$conn->connect_error);
} 連接數據庫,第一個參數為ip地址,參數可變;第二個參數為數據庫賬號,第三個參數為密碼,第四個參數為數據庫名,第五個參數為; $id = $_GET['id']; 獲取ajax傳遞過來的id $id = $_COOKIE['id'];后端獲取cookie的id的方法 執行sql語句,增刪改,返回的是布爾值boolen類型,查返回的是結果集 $sql = "SELECT * FROM shops WHERE id = $id"; $conn->query("SET CHARACTER SET 'utf8'");讀庫 $conn->query("SET NAMES 'utf8'");寫庫 ,要記住別忘了寫,沒寫會讓html拿不到數據的!!!! $result = $conn ->Query($sql);返回的是結果集 $row = $result -> fetch_assoc();返回的是條數if($row) {
msg是前端與后台要求返回的,一般失敗時使用,code相當於狀態,正確時為200,data為要傳遞的$row數據,$array = array("msg"=>"","code"=>"200", "data"=>$row);
}else{$array = array("code"=>"100", "msg"=> "賬號或者用戶名錯誤!!");
}echo json_encode($array);
json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) 對 JSON 格式的字符串進行編碼
說明 :mixed json_decode ( string $json [, bool $assoc ] ) 接受一個 JSON 格式的字符串並且把它轉換為 PHP 變量
參數
json 待解碼的 json string 格式的字符串。
assoc
當該參數為 TRUE 時,將返回 array 而非 object 。
json_decode(\(data,true),輸出的一個關聯數組,由此可知,json_decode(\)data)輸出的是對象,而json_decode("$arr",true)是把它強制生成PHP關聯數組.
json_encode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_encode — 對變量進行 JSON 編碼
Report a bug 說明
string json_encode ( mixed $value [, int $options = 0 ] )
返回 value 值的 JSON 形式
?>