利用PHP和AJAX創(chuàng)建RSS聚合器(3)_PHP教程
推薦:PHP初學(xué)者頭疼問(wèn)題總結(jié) 文本關(guān)鍵字:程序設(shè)計(jì)/PHP/技巧 【1】頁(yè)面之間無(wú)法傳遞變量 get,post,session在最新的php版本中自動(dòng)全局變量是關(guān)閉的,所以要從上一頁(yè)面取得提交過(guò)來(lái)得變量要使用$_GET['foo'],
GET/POST與AJAX相結(jié)合
為了POST請(qǐng)求,我們首先需要?jiǎng)?chuàng)建該請(qǐng)求對(duì)象。如果你沒(méi)有創(chuàng)建請(qǐng)求對(duì)象的經(jīng)驗(yàn),那么可以讀一下我的文章《How To Use AJAX》或簡(jiǎn)單地研究一下本文的示例源代碼。一旦創(chuàng)建該請(qǐng)求對(duì)象,就可以調(diào)用sendFeed方法并傳遞由表單所創(chuàng)建的URL:
function sendFeed(url){
post.onreadystatechange = sendRequest;
post.open("POST", url, true);
post.send(url);
}
一旦收到來(lái)自于PHP對(duì)象的響應(yīng)并被正確加載,則對(duì)與該響應(yīng)相應(yīng)的本地文件發(fā)出另一個(gè)請(qǐng)求。在這種情況中,post.responseText提供給我們?cè)撔挛募穆窂剑?
function sendRequest(){
if(checkReadyState(post)){
request = createRequestObject();
request.onreadystatechange = onResponse;
request.open("GET", post.responseText, true);
request.send(null);
}
}
由于RSS饋送之間的區(qū)別,分析響應(yīng)具有一定的挑戰(zhàn)性。一些含有包含標(biāo)題和描述結(jié)點(diǎn)的圖像,而其它則沒(méi)有。因此,當(dāng)我們分析回饋時(shí),我們需要做一點(diǎn)檢查來(lái)譯解它是否包括一圖像。如果它包括一圖像,我們就可以,與該饋送的標(biāo)題和鏈接一起,在image div標(biāo)簽中顯示該圖像:
var _logo = "";
var _title = response.getElementsByTagName('title')[0].firstChild.data;
var _link = response.getElementsByTagName('link')[0].firstChild.data;;
_logo = "<a href='" _link "' target='_blank'>" _title "</a><br/>";
if(checkForTag(response.getElementsByTagName('image')[0]))
{
var _url = response.getElementsByTagName('url')[0].firstChild.data;
_logo = "<img src='" _url "' border='0'><br/>"
}
document.getElementById('logo').innerHTML = _logo;
我們不僅必須檢查每個(gè)圖像以顯示它,當(dāng)遍歷饋送中所有的項(xiàng)時(shí)我們還需要對(duì)之進(jìn)行檢查。因?yàn)槿绻嬖谝粋(gè)圖像,那么所有另外的標(biāo)題和鏈接結(jié)點(diǎn)索引都將無(wú)法正常工作。因此,當(dāng)發(fā)現(xiàn)圖像標(biāo)簽時(shí),我們應(yīng)該通過(guò)在每一次遍歷中增加索引值( 1)來(lái)調(diào)整標(biāo)題和鏈接結(jié)點(diǎn)的索引:
if(checkForTag(response.getElementsByTagName('image')[0]) "" i>0){
var _title=response.getElementsByTagName('title')[i 1].firstChild.data;
var _link=response.getElementsByTagName('link')[i 1].firstChild.data;
}
else{
var _title =response.getElementsByTagName('title')[i].firstChild.data;
var _link = response.getElementsByTagName('link')[i].firstChild.data;
}
你可以使用checkForTag方法來(lái)檢查是否存在特定的標(biāo)簽:
function checkForTag(tag){
if(tag != undefined) {
return true;
}
else{
return false;
}
}
if(i>1){
var previousPubDate = response.getElementsByTagName('pubDate')[i-1].firstChild.data;
}
if(pubDate != previousPubDate || previousPubDate == undefined){
_copy = "<div id='detail'>" pubDate "</div><hr align='left' width='90%'/>";
}
_copy = "<a href=\"JavaScript:showDetails('" i "');\">" _title "</a><br/><br/>";
document.getElementById('copy').innerHTML = _copy;
注意,上面的最后一部分是showDetails方法,它用于當(dāng)一用戶從一個(gè)饋送中選擇一特定的項(xiàng)時(shí)進(jìn)行細(xì)節(jié)顯示。這個(gè)方法有一個(gè)參數(shù)(項(xiàng)索引值),這個(gè)索引用于發(fā)現(xiàn)在該饋送中details結(jié)點(diǎn)的索引:
function showDetails(index){
document.getElementById('details').innerHTML = response.getElementsByTagName('description')[index].firstChild.data;
}
結(jié)論
使用AJAX發(fā)送查詢字符串到一個(gè)服務(wù)器端腳本并檢索一個(gè)基于該串的定制響應(yīng),這對(duì)于任何Web開(kāi)發(fā)者都有實(shí)現(xiàn)的可能。這樣以來(lái),你的下一個(gè)web應(yīng)用程序也將會(huì)充滿了新的可能性。
分享:Php高手帶路--問(wèn)題匯總解答 1:為什么我得不到變量 我在一網(wǎng)頁(yè)向另一網(wǎng)頁(yè)P(yáng)OST數(shù)據(jù)name,為什么輸出$name時(shí)卻得不到任何值? 在PHP4.2以后的版本中reGISter_global默認(rèn)為off 若想取得從另一頁(yè)面
- 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教程推薦
- 關(guān)于二級(jí)目錄拖拽排序的實(shí)現(xiàn)(源碼示例下載)
- PHP顯示當(dāng)前在線用戶
- 關(guān)于PHP編程中“數(shù)組”的基礎(chǔ)知識(shí)
- 解析PHP初學(xué)者14個(gè)典型疑難問(wèn)題
- PHP CLI模式下的多進(jìn)程應(yīng)用分析
- PHP實(shí)現(xiàn)定時(shí)生成HTML網(wǎng)站首頁(yè)
- PHP 自定義錯(cuò)誤處理函數(shù)trigger_error()
- PHP初學(xué)者頭疼問(wèn)題總結(jié)
- 深入探討:Nginx 502 Bad Gateway錯(cuò)誤的解決方法
- php中輸出變量加大括號(hào){}作用
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-利用PHP和AJAX創(chuàng)建RSS聚合器(3)
。