其實(shí)就是發(fā)送一個(gè)網(wǎng)絡(luò)請(qǐng)求,服務(wù)端輸出的內(nèi)容就是響應(yīng)的內(nèi)容,如jQuery
10余年的易縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷(xiāo)型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整易縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“易縣網(wǎng)站設(shè)計(jì)”,“易縣網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
$.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);??//?就是你說(shuō)的后臺(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)客戶(hù)端,?數(shù)據(jù)格式為?JSON
一般將前臺(tái)頁(yè)面搜索結(jié)果中,不喜歡的內(nèi)容(鏈接),刪除掉,因?yàn)檎麄€(gè)網(wǎng)站的編程框架式thinkphp,運(yùn)用js中的ajax對(duì)頁(yè)面進(jìn)行響應(yīng),調(diào)用后臺(tái)php接口,實(shí)現(xiàn)前臺(tái)和后臺(tái)數(shù)據(jù)庫(kù)的同時(shí)更新.
首先我們需要做的就是在前臺(tái)頁(yè)面中添加一個(gè)文本“刪除”,可以這么添加:
代碼如下:
a href="javascript:void(0);" id= "phpecho $val[id]/php" class="delete" 刪除/a
上面的html代碼的意思:就是給刪除添加一個(gè)href,這個(gè)href是個(gè)js函數(shù),類(lèi)似于超鏈接的作用,當(dāng)然對(duì)于我這樣的新手在剛開(kāi)始的時(shí)候會(huì)有疑惑,我們平時(shí)的超鏈接不是這樣的,網(wǎng)頁(yè)中很多的javascript:void(0),那程序怎么知道用戶(hù)點(diǎn)擊刪除后,會(huì)響應(yīng)其真正對(duì)應(yīng)的js函數(shù)呢?別急,這就是為什么會(huì)為刪除添加id以及class這樣的標(biāo)簽,相信我把js中的代碼公布出來(lái)以后你就會(huì)明白了,代碼如下:
jQuery(".list a.delete").click(function(){
if(confirm("你確定要?jiǎng)h除嗎?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();
}else{//刪除失敗
alert("刪除失敗");
}
}
});
}
});
大家看函數(shù)的頭部:jQuery(".list a.delete").click(),jQuery后面的標(biāo)簽是很重要的,這就保證了jquery很準(zhǔn)確的響應(yīng)頁(yè)面中用戶(hù)點(diǎn)擊的“位置”,添加的事件為click(),在click里添加響應(yīng)事件的代碼:var id = jQuery(_this).attr("id");獲取a對(duì)應(yīng)的id,因?yàn)檫@個(gè)id是我們刪除數(shù)據(jù)庫(kù)時(shí)用到的鏈接id,當(dāng)然這種直接明文的方式不好,在這里只是介紹整個(gè)響應(yīng)過(guò)程。調(diào)用ajax,實(shí)現(xiàn)異步的運(yùn)行整個(gè)過(guò)程。我們?cè)O(shè)置了js接受的是json串,這里的方式應(yīng)該有很多種吧,我沒(méi)有去嘗試,大家要是有興趣可以自行嘗試一下。/Search/index.php/Jason/delete?這句話(huà)就是js去請(qǐng)求php的接口,php接口對(duì)用的代碼如下:
注意ajax在求php接口時(shí)的路徑,也就是delete函數(shù)必須放在JasonAction.class.php中,此例子是必須這樣的:
代碼如下:
public function delete(){
if($this-isGet()){
$userId = session("uid");//用戶(hù)登錄
if(!empty($userId)){
$a = M('***');
$id = $this-_get('id');
$result=$a-where("id=$id")-delete();//刪除
if($result 0){
$arr = array("del"='1');
}else{
$arr = array("del"='0');
}
$json_str = json_encode($arr);
echo $json_str;//返回給js
}
}
}
相信大家對(duì)上面的代碼不會(huì)陌生吧,整個(gè)過(guò)程都是thinkphp框架內(nèi)部配置完畢的.
var del = data.del;這句是接受php代碼返回來(lái)的json串中del這個(gè)key的value,進(jìn)而在前臺(tái)進(jìn)行頁(yè)面更新和響應(yīng).
復(fù)制代碼代碼如下:
if(del == 1){//刪除成功
jQuery("#"+id).parents(".list").remove();//這句話(huà)就是后臺(tái)刪除成功后,直接在前臺(tái)對(duì)響應(yīng)的div進(jìn)行刪除,這樣性能就會(huì)很快,無(wú)需進(jìn)行后臺(tái)數(shù)據(jù)的重新提取至前臺(tái)頁(yè)面中,
}else{//刪除失敗
alert("刪除失敗");
}
整個(gè)響應(yīng)的過(guò)程就是這樣,至于效果優(yōu)化,是優(yōu)化和細(xì)化方面的問(wèn)題,后來(lái),身邊的同事又告訴我前臺(tái)移除響應(yīng)鏈接的另一個(gè)動(dòng)態(tài)效果:
即將:
代碼如下:
jQuery("#"+id).parents(".list").remove();
替換為:
代碼如下:
jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});
你是說(shuō)用 php 獲取 遠(yuǎn)程的網(wǎng)頁(yè)?
你去看這個(gè)函數(shù):file_get_contents
---------------------------------------------
你的事: 后臺(tái)要查詢(xún)出一個(gè)用戶(hù)(用戶(hù)名,用戶(hù)ID等一些信息)再把這些信息返回到前臺(tái)顯示。
但是前臺(tái)現(xiàn)在我只要一個(gè)用戶(hù)名,這樣的話(huà),最好用 json 格式。
比如,后臺(tái)這樣寫(xiě) :
echo '{"name":'. json_encode('前端攻城師') .',"id":1000,"area":'. json_encode('中國(guó)') .'}';
然后前臺(tái)代碼:
script
$.post("index.php?a=diary_view2action=first" , function(data){
alert(data.name);
},'json');
/script
這樣,就可以獲取 名字啦。。。
如果還有問(wèn)題,設(shè)我為最佳,然后去 jQuery 愛(ài)好者論壇 去提問(wèn)。。。
有高手幫你回答。。。
你的s.html改成下面代碼,在s.php獲取q的值時(shí)用post就可以了,get應(yīng)該也可以,我沒(méi)有用過(guò)get,為保險(xiǎn)起見(jiàn),這里改成了post:
script type="text/javascript"
!--
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}
function startRequest(url)
{
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("POST",url,true);
xmlHttp.send();
}
function handleStateChange()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
document.getElementById("results").innerHTML=xmlHttp.responseText;
}
}
}
function check()
{
var q=document.getElementById("q").value;
ifq=="")
{
alert("請(qǐng)輸入Q");
return false;
}
else
{
document.getElementById("results").innerHTML="brbrbr正在加載頁(yè)面,請(qǐng)稍候...";
startRequest('s.php?q='+q);
}
}
--
/SCRIPT
form method=post action=""
input type=text name=q size=50 value=""id=q"
input type="submit" value="搜索" onclick="check()"
div id="results"
/div
給你個(gè)例子,照著改改就成:
html
head
script src="selectuser.js"/script
/head
body
form
Select a User:
select name="users" onchange="showUser(this.value)"
option value="1"Peter Griffin/option
option value="2"Lois Griffin/option
option value="3"Glenn Quagmire/option
option value="4"Joseph Swanson/option
/select
/form
p
div id="txtHint"bUser info will be listed here./b/div
/p
/body
/html
"selectuser.js" 文件中的 JavaScript 代碼:
var xmlHttp
function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getuser.php"
url=url+"?q="+str
url=url+"sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}