RELATEED CONSULTING
相關咨詢
選擇下列産品馬上(shàng)在線溝通(tōng)
服務時(shí)間(jiān):9:00-18:00
你(nǐ)可(kě)能遇到了下面的問題
關閉右側工具欄
Ajax應用:使用jQuery和(hé)PHP實現功能開(kāi)關效果
  • 作(zuò)者:admin
  • 發表時(shí)間(jiān):2013-07-02 14:17:08
  • 來(lái)源:未知

在開(kāi)發項目中,我們會(huì)經常碰到需要及時(shí)開(kāi)啓某項功能的情況,通(tōng)過Ajax實現實時(shí)開(kāi)啓和(hé)關閉功能,無疑增強了用戶體(tǐ)驗。本文以360安全衛士的木馬防火(huǒ)牆開(kāi)關為(wèi)背景,使用PHP、jquery、MYSQL實現了及時(shí)開(kāi)啓和(hé)關閉産品功能的WEB應用。



準備工作(zuò)

為(wèi)了更好的演示本例,我們需要一個(gè)數(shù)據表,記錄需要的功能說明(míng)及開(kāi)啓狀态,表結構如下:

你(nǐ)可(kě)以向表中pro插入幾條數(shù)據。

index.php

我們要在頁面顯示相關功能列表,使用PHP讀取數(shù)據表,并以列表的形式展示。



連接數(shù)據庫,然後循環輸出産品功能列表。

CSS

為(wèi)了渲染一個(gè)比較好的頁面外觀,我們使用CSS來(lái)美化頁面,使得(de)頁面更符合人(rén)性化。使用CSS,我們隻需用一張圖片來(lái)标識開(kāi)關按鈕。



CSS代碼,我不想詳述,提示下我們使用了一張圖片,然後通(tōng)過background-position來(lái)定位圖片的位置,這是大(dà)多(duō)數(shù)網站(zhàn)使用的方法,好處咱就不說了。

jQuery

我們通(tōng)過單擊開(kāi)關按鈕,及時(shí)請(qǐng)求後台,改變對應的功能開(kāi)關狀态。這個(gè)過程是一個(gè)典型的Ajax應用。通(tōng)過點擊開(kāi)關按鈕,前端向後台PHP發送post請(qǐng)求,後台接收請(qǐng)求,并查詢數(shù)據庫,并将結果返回給前端,前端jQuery根據後台返回的結果,改變按鈕狀态。

$(function(){
    //鼠标滑向換色
	$(".list").hover(function(){
		$(this).addClass("cur_select");
	},function(){
		$(this).removeClass("cur_select");
	});
	
	//關閉
	$(".ad_on").live("click",function(){
		var add_on = $(this);
		var status_id = $(this).attr("rel");
		$.post("action.php",{status:status_id,type:1},function(data){
			if(data==1){
				add_on.removeClass("ad_on").addClass("ad_off").attr("title","點擊開(kāi)啓");
			}else{
				alert(data);
			}
		});
	});
	//開(kāi)啓
	$(".ad_off").live("click",function(){
		var add_off = $(this);
		var status_id = $(this).attr("rel");
		$.post("action.php",{status:status_id,type:2},function(data){alert(data);  
			if(data==1){
				add_off.removeClass("ad_off").addClass("ad_on").attr("title","點擊關閉");
			}else{
				alert(data);
			}
		});
	});
});

說明(míng),代碼中,首先實現了鼠标滑向功能列表換色的功能(詳見demo),然後就是單擊開(kāi)關按鈕,向後台action.php發送Ajax請(qǐng)求,提交的參數(shù)是對應功能的id和(hé)type,用于後台區(qū)分請(qǐng)求的是哪個(gè)功能和(hé)請(qǐng)求的類型(開(kāi)啓和(hé)關閉)。其實,大(dà)家(jiā)稍微留神,可(kě)以看出,根據Ajax請(qǐng)求成功返回結果後,開(kāi)關按鈕動态改變樣式,實現改變開(kāi)關狀态的功能。

action.php

後台action.php接收到前端的請(qǐng)求,根據參數(shù)執行(xíng)SQL語句,更新對應功能的狀态,成功後将結果返回給前端,請(qǐng)看代碼:

require_once('connect.php');
$id = $_POST['status'];
$type = $_POST['type'];
if($type==1){ //關閉
	$sql = "update pro set status=0 where id=".$id;
}else{ //開(kāi)啓
	$sql = "update pro set status=1 where id=".$id;
}
$rs = mysql_query($sql);
if($rs){
	echo '1';
}else{
	echo '服務器(qì)忙,請(qǐng)稍後再試!';
}