資源描述:
《php 和 ajax rss 閱讀器》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、在此列出RSSFeed。本例包括三個(gè)元素:·簡(jiǎn)單的HTML表單·JavaScript·PHP頁(yè)面HTML表單這是HTML頁(yè)面。它包含一個(gè)簡(jiǎn)單的HTML表單和執(zhí)行一個(gè)JavaScript文件的鏈接:
RSSFeedwillbelistedhere.
例子解釋-HTML表單正如您看到的,上面的HTML頁(yè)面包含一個(gè)簡(jiǎn)單的HTML表單,其中帶有一個(gè)下拉列表框。表單是這樣工作的:1當(dāng)用戶(hù)選擇下拉框中的選項(xiàng)時(shí),會(huì)觸發(fā)一個(gè)事件2當(dāng)事件觸發(fā)時(shí),執(zhí)行showRSS()函數(shù)表單下面是名為"rssOutput"的一個(gè)
。它用作sh
3、owRSS()函數(shù)所返回的數(shù)據(jù)的占位符。JavaScriptJavaScript代碼存儲(chǔ)在"getrss.js"中,它與HTML文檔相連接:varxmlHttpfunctionshowRSS(str){xmlHttp=GetXmlHttpObject()if(xmlHttp==null){alert("BrowserdoesnotsupportHTTPRequest")return}varurl="getrss.php"url=url+"?q="+strurl=url+"&sid="+Math.random()xmlHttp.onreadys
4、tatechange=stateChangedxmlHttp.open("GET",url,true)xmlHttp.send(null)}functionstateChanged(){if(xmlHttp.readyState==4
5、
6、xmlHttp.readyState=="complete"){document.getElementById("rssOutput").innerHTML=xmlHttp.responseText}}functionGetXmlHttpObject(){varxmlHttp=null;try{//Firef
7、ox,Opera8.0+,SafarixmlHttp=newXMLHttpRequest();}catch(e){//InternetExplorertry{xmlHttp=newActiveXObject("Msxml2.XMLHTTP");}catch(e){xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}}returnxmlHttp;}例子解釋?zhuān)簊tateChanged()和GetXmlHttpObject函數(shù)與PHP和AJAX請(qǐng)求這一節(jié)中的例子相同。showRSS()函數(shù)每當(dāng)在下拉框中選擇
8、選擇時(shí),該函數(shù)就會(huì)執(zhí)行:1定義發(fā)送到服務(wù)器的url(文件名)2把參數(shù)(q)添加到url,參數(shù)內(nèi)容是下拉框中的被選項(xiàng)3添加一個(gè)隨機(jī)數(shù),以防止服務(wù)器緩存文件4調(diào)用GetXmlHttpObject函數(shù)來(lái)創(chuàng)建XMLHTTP對(duì)象,并告知該對(duì)象在觸發(fā)一個(gè)改變時(shí)去執(zhí)行stateChanged函數(shù)5通過(guò)給定的url來(lái)打開(kāi)XMLHTTP6把HTTP請(qǐng)求發(fā)動(dòng)到服務(wù)器PHP頁(yè)面調(diào)用JavaScript代碼的服務(wù)器頁(yè)面是名為"getrss.php"的PHP文件:
9、whichfeedwasselectedif($q=="Google"){$xml=("http://news.google.com/news?ned=us&topic=h&output=rss");}elseif($q=="MSNBC"){$xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml");}$xmlDoc=newDOMDocument();$xmlDoc->load($xml);//getelementsfrom""$channel=$xmlDo
10、c->getElementsByTagName('channel')->item(0);$channel_title=$channel->getElementsBy