解讀利用PHP JavaScript打造AJAX搜索窗的方法_PHP教程
推薦:解析PHP CSS實(shí)現(xiàn)打印簡(jiǎn)單數(shù)據(jù)報(bào)表功能PHP CSS實(shí)現(xiàn)打印簡(jiǎn)單數(shù)據(jù)報(bào)表功能 功能:實(shí)現(xiàn)打印日?qǐng)?bào)表的功能,定義了專門的打印樣式,隱藏了不該打印的控件并實(shí)現(xiàn)了分頁(yè)打印功能,表名:rec 字段:rec_id,rec_po,rec_part,rec_plant
一、引言
Web世界中一項(xiàng)廣為使用的功能就是搜索。隨著Web技術(shù)的日益發(fā)展,為了更好地滿足客戶的需求,常規(guī)搜索引擎開(kāi)始對(duì)更多的非常規(guī)方式"敞開(kāi)了大門"。在這方面,Yahoo!率先提供出其Y!Q服務(wù)。這個(gè)新的服務(wù)能夠使你搜索任何web頁(yè)面,前提是該頁(yè)面的作者必須包括在他們的web頁(yè)面中。是服務(wù)技術(shù)實(shí)現(xiàn)了把相關(guān)的搜索結(jié)果呈現(xiàn)到讀者眼前,從而向讀者展示更多的信息而不必離開(kāi)他們的當(dāng)前頁(yè)面。
Yahoo!的Y!Q服務(wù)的確是一個(gè)偉大的想法,但是它的出現(xiàn)也受到了一些批評(píng)。原因何在?首先,它要求客戶端必須使用Yahoo!的JavaScript并且你必須添加一個(gè)<form/>元素,以便滿足Yahoo!的搜索要求。對(duì)于許多網(wǎng)站作者來(lái)說(shuō),提供該服務(wù)要求付出太多的努力。并且,在所有這些條件滿足之后,搜索結(jié)果將以Yahoo!風(fēng)格展現(xiàn),從而破壞了用戶網(wǎng)站的外觀感覺(jué)。
幸運(yùn)的是,Yahoo!并非唯一的提供"從你的網(wǎng)站提供搜索結(jié)果"服務(wù)的搜索引擎。MSN Search也提供一種類似服務(wù),除了它能夠使web開(kāi)發(fā)者控制外觀感覺(jué)以外。這種能力來(lái)自于MSN Search提供它的搜索結(jié)果的RSS版本,從而使得訂閱一個(gè)特定的搜索或使用Ajax方法把該結(jié)果添加到你的頁(yè)面成為可能。
盡管Google已經(jīng)率先實(shí)現(xiàn)了這種新的"從你的站點(diǎn)進(jìn)行搜索"技術(shù);但是,在本文成文之時(shí),與Google相關(guān)的Google BlogSearch Beta也已經(jīng)能夠以RSS或者Atom格式提供返回的結(jié)果。
二、 服務(wù)器端組件
使用MSN Search執(zhí)行搜索時(shí),你會(huì)看到一個(gè)桔黃色的XML圖像出現(xiàn)在結(jié)果頁(yè)面的底部。點(diǎn)擊這個(gè)圖像將會(huì)把你帶到一個(gè)新的頁(yè)面,并提供給你訂閱該搜索的URL。
這樣以來(lái),你就可以編寫服務(wù)器端代碼以檢索遠(yuǎn)程饋送。對(duì)于本文中的搜索窗,你將使用PHP檢索搜索饋送。來(lái)自于服務(wù)器應(yīng)用程序請(qǐng)求信息的URL看起來(lái)如下所示:
websearch.php?search=[SEARCHTERM]
查詢字符串只有一個(gè)變量:"search";因此,應(yīng)用程序應(yīng)該查找此查詢項(xiàng)。在服務(wù)器端,你需要?jiǎng)?chuàng)建一個(gè)頁(yè)面來(lái)"拉動(dòng)"這個(gè)數(shù)據(jù):
| 以下為引用的內(nèi)容:
<?php |
前兩行設(shè)置要求的頭部以便瀏覽器能夠正確處理數(shù)據(jù)(XML形式,并且沒(méi)有對(duì)結(jié)果予以緩沖)。下一行代碼使用isset()函數(shù)來(lái)決定是否搜索鍵存在于查詢字符串中。
為了把一個(gè)合適的請(qǐng)求發(fā)送到遠(yuǎn)程主機(jī),搜索術(shù)語(yǔ)應(yīng)該通過(guò)許多函數(shù)的"過(guò)濾"。首先,它被傳遞給stripslashes()函數(shù)。如果在PHP配置中啟動(dòng)了"magic quotes"(缺省情況下是支持的),那么,到達(dá)PHP引擎的任何引號(hào)都會(huì)被使用一個(gè)斜杠(如,"search query")自動(dòng)地脫掉。該stripslashes()函數(shù)負(fù)責(zé)刪除這些符號(hào),僅留下"search query"。在刪除斜杠后,轉(zhuǎn)到urlencode()函數(shù),由這個(gè)函數(shù)負(fù)責(zé)編碼字符以用于查詢字符串�?崭�、引號(hào)、"&"等符號(hào)都被編碼。
注意 如果搜索術(shù)語(yǔ)不能通過(guò)這些函數(shù)的"過(guò)濾",那么,MSN服務(wù)器將返回一個(gè)代碼400-"Bad Request"。
當(dāng)為轉(zhuǎn)換搜索術(shù)語(yǔ)準(zhǔn)備好后,它被包括到URL中并存儲(chǔ)于url變量中。最后,file_get_contents()函數(shù)負(fù)責(zé)打開(kāi)遠(yuǎn)程文件,讀取其內(nèi)容并以一個(gè)字符串形式把它返回到xml變量中,然后使用echo命令把它打印到頁(yè)面中。
三、 客戶端組件
本文中的搜索窗口(Widget)的客戶端代碼基于一個(gè)靜態(tài)對(duì)象msnWebSearch創(chuàng)建-它被定義為一個(gè)沒(méi)有任何屬性(現(xiàn)在)的對(duì)象:
var msnWebSearch ={};
這個(gè)對(duì)象用于一個(gè)HTMLElement的onclick事件中執(zhí)行搜索:
| 以下為引用的內(nèi)容:
<a href="#" |
這個(gè)msnWebSearch對(duì)象提供若干取得搜索結(jié)果的方法,并負(fù)責(zé)繪制和放置包含這些數(shù)據(jù)的HTML。第一個(gè)方法是drawResultBox(),它負(fù)責(zé)繪制HTML。這個(gè)方法形成的HTML如下所示:
| 以下為引用的內(nèi)容:
<divclass="ajaxWebSearchBox"> |
該結(jié)果框分為兩部分:一個(gè)頭部和一個(gè)結(jié)果欄(見(jiàn)圖1)。頭部告訴用戶這個(gè)新的搜索窗包含來(lái)自一個(gè)MSN搜索的結(jié)果。它還包含一個(gè)"X"用于關(guān)閉該小窗口。其結(jié)果欄包含塊風(fēng)格的鏈接,當(dāng)點(diǎn)擊這些鏈接時(shí)將打一個(gè)新的窗口。
分享:解析PHP技術(shù):txtSQL安裝手冊(cè)中文版txtsql的最大優(yōu)點(diǎn)之一是文檔很詳細(xì),可惜,我在網(wǎng)上找了半天也找不到中文版的文檔,所以只好自己動(dòng)手,利人利已吧,不過(guò)自己的E文水平自己是很清楚的,希望大家看了不會(huì)笑掉大牙才好,還希
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- PHP讀取漢字點(diǎn)陣數(shù)據(jù)
- 讓我們來(lái)編寫一些PHP實(shí)用的腳本
- php 判斷數(shù)組是幾維數(shù)組
- 《PHP設(shè)計(jì)模式介紹》第四章 單件模式
- PHP register_shutdown_function函數(shù)的深入解析
- 動(dòng)態(tài)網(wǎng)頁(yè)制作PHP中的Cookies
- PHP和MYSQL制作動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn)之談
- 菜鳥(niǎo)學(xué)習(xí):動(dòng)態(tài)網(wǎng)頁(yè)P(yáng)HP基礎(chǔ)學(xué)習(xí)筆記
- PHP技巧:詳解phplib模板使用過(guò)程及運(yùn)行原理
- 使用Xdebug優(yōu)化你的php程序
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-解讀利用PHP JavaScript打造AJAX搜索窗的方法
。