十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
舉個(gè)例子:你想在用戶點(diǎn)擊時(shí),把 apple 這個(gè)字符串,通過前端傳給后端。
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
前端,用 jQuery 舉例:
$('button').click(function () {
$.ajax({
url: '/xxx',
method: 'post',
dataType: 'json',
data: {fruit: 'apple'}
}).done(function (res) {
// 成功后的回調(diào)
}).fail(function (err) {
// 失敗后的回調(diào)
});
});
后端 PHP 處理:
$fruit = $_POST['fruit']; // 獲取從 ajax 傳過來的 fruit 的值,這里是 apple。
如果你想在前端重新顯示這個(gè)字符串 apple,那么你要用 PHP 把數(shù)據(jù)返回給頁(yè)面,然后在上面 “// 成功后的回調(diào)” 里面,補(bǔ)充邏輯代碼。
例如 PHP 把 apple 返回給前端:
return json_encode(array('fruit' = 'apple'));
前端回調(diào)處理:
// 成功后的回調(diào)
alert(res.fruit); // 彈框顯示 “apple”
實(shí)際上,$_POST 能夠獲取所有從前端用 post 方式提交過來的數(shù)據(jù),不管你是頁(yè)面刷新方式,還是 ajax(jQuery 才叫 ajax,實(shí)際上它是 XMLHttpRequest,異步非阻塞的請(qǐng)求方式)
var?formData?=?new?FormData();
formData.append('goodsNum',?1);
$.ajax({
url:?'index.php',/*獲取表單提交路徑*/
type:?'post',/*提交方式*/
data:formData,/*提交數(shù)據(jù)*/
processData:?false,
contentType:?false,
success:?function?(msg)?{
/*執(zhí)行成功后*/
console.log(msg);
},
error?:?function(jqXHR)?{
/*?執(zhí)行失敗后*/
console.log(JSON.stringify(jqXHR));
}
},'json');
返回?cái)?shù)據(jù)代碼如下:
如果在php里有echo的值的話,可以用AJAX來接收:
有多個(gè)輸出的話,是不可能指定輸出的
需要把想要輸出的內(nèi)容放到一個(gè)數(shù)組中,然后json_encode一下,在到j(luò)s里循環(huán),找到自己想要的值
比如:
//需要輸出的內(nèi)容
echo 'aaa'; echo 'bbb';echo ''ccc;
//合成數(shù)組
$data = array(‘name1’='aaa',‘name2’= 'bbb',‘name2’= 'ccc');
//json_encode
$data =?json_encode($data);
//輸出
echo $data;
js:
$.post('aa.php',‘’,function(mes){
var data = eval('(' + msg + ')');
var name1 = data['name1'];
var name2 = data['name2'];
var name3 = data['name3'];
})
如果用AJAX接受數(shù)據(jù)用GET。
如果用PHP直接ECHO顯示。
用到數(shù)據(jù)庫(kù)指令。
其實(shí)就是發(fā)送一個(gè)網(wǎng)絡(luò)請(qǐng)求,服務(wù)端輸出的內(nèi)容就是響應(yīng)的內(nèi)容,如jQuery
$.ajax(
{
url:?'',?????//?請(qǐng)求URL
data:?'',????//?請(qǐng)求時(shí)攜帶的參數(shù)
type:?'',????//?請(qǐng)求方式,?GET/POST
dataType:?'',//?響應(yīng)數(shù)據(jù)格式,?text/json
success:?r?=?{
//?請(qǐng)求成功時(shí)回調(diào)函數(shù),參數(shù)?r?為服務(wù)端響應(yīng)的內(nèi)容
console.log(r);??//?就是你說的后臺(tái)數(shù)據(jù)
},
error:?()?=?{
console.error('fail');?//?請(qǐng)求失敗
}
}
)
//?服務(wù)端響應(yīng)內(nèi)容
$data?=?[];???//?從數(shù)據(jù)庫(kù)中獲取的數(shù)據(jù)
echo?json_encode($data);???//?響應(yīng)客戶端,?數(shù)據(jù)格式為?JSON