Kusoma RSS wa AJAX wa PHP
- Nyuma Ajex Live Search
- Pya zaidi Ajex Poll
Mkolezi wa RSS wa RSS inaonyesha habari kutoka kwenye RSS.
RSS inafaa kwa kusoma habari na upatezaji kwa urahisi.
Mkolezi wa RSS wa AJAX
Mfano wa AJAX kwenye RSS, hii inaonyesha habari kutoka kwenye RSS kuingia katika tovuti bila kufanyia kuzima kwa tovuti.
Chagua habari ya kusoma kwenye orodha hii inayotumiwa kwenye kikapteni
Mfano huu una elementi tatu:
- Fomu ya HTML ya kawaida
- JavaScript
- Mawakilishi wa PHP
Fomu ya HTML
Hii la tovuti ya HTML. Ina muundo wa HTML wa kawaida na viungo vya JavaScript kwenye tovuti:
<html> <head> <script type="text/javascript" src="getrss.js"></script> </head> <body> <form> Select an RSS-Feed: <select onchange="showRSS(this.value)"> <option value="Google">Google News</option> <option value="MSNBC">MSNBC News</option> </select> </form> <p><div id="rssOutput"> <b>RSS Feed will be listed here.</b></div></p> </body> </html>
Mafano ya uharibifu - Fomu ya HTML
Kama unavyofikia, ukurasa wa HTML juu una fomu ya kawaida ya HTML yenye chaguo cha kizitoa.
Kazi ya fomu ni kama iliyotazwa:
- Kama mtumiaji anachagua chaguo cha kizitoa, hatua inatukia
- Kama kiwango kilichotukia, showRSS() funguo kinafanyishwa
Kifo cha fomu kina divi yenye jina "rssOutput". Hii inatumiwa kama mabaki ya data ya kuzingatia kutoka kwa showRSS() funguo.
JavaScript
Makini ya JavaScript iweza kuhifadhiwa katika faili "getrss.js", ambayo inapakia na hali ya HTML:
var xmlHttp function showRSS(str) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Kifaa cha kifurahia anasema HTTP Request") kubali } var url="getrss.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("rssOutput") .innerHTML=xmlHttp.responseText } } function GetXmlHttpObject() { var xmlHttp=null; hataa { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } kataa (e) { // Internet Explorer hataa { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } kataa (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } kubali xmlHttp; }
Mfano wa kufafanisha:
stateChanged() na GetXmlHttpObject funguo na Tuma乞求 wa AJAX wa PHP Mfano hii unaonekana kama hii.
Mengineko showRSS()
Kila mara inapotumika kwa kuzingatia chaguo cha kielektroniki, mengineko hii inaendelea kufanyika:
- Inadefini url yenye uwanja wa kusaidia kwa server (jina la faili)
- Inadui thamani (q) kwa url, thamani inaonekana kwa ajili ya chaguo cha kielektroniki
- Inadui namba ya nguvu, ili kuzingatia ukumbukumbu wa server wa faili
- Inakubalia uwanja wa GetXmlHttpObject kwa kuanzisha uwanja wa XMLHTTP, na inarudisha inafanyia kazi stateChanged kama uwanja huo inapokwenda
- Inafungua XMLHTTP kwa sababu ya url yenye taarifa
- Inafungua tafutaji wa HTTP kwa server
Mawakilishi wa PHP
Kwa kusaidia mengineko ya JavaScript, mawakilishi wa server ni wasifu "getrss.php" wa PHP:
<?php //get the q parameter from URL $q=$_GET["q"]; //find out which feed was selected if($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 = new DOMDocument(); $xmlDoc->load($xml); //get elements from "<channel>" $channel=$xmlDoc->getElementsByTagName('channel')->item(0); $channel_title = $channel->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $channel_link = $channel->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $channel_desc = $channel->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; //output elements from "<channel>" echo("<p><a href='" . $channel_link . "'>" . $channel_title . "</a>"); echo("<br />"); echo($channel_desc . "</p>"); //get and output "<item>" elements $x=$xmlDoc->getElementsByTagName('item'); for ($i=0; $i<=2; $i++) { $item_title=$x->item($i)->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $item_link=$x->item($i)->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $item_desc=$x->item($i)->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; echo ("<p><a href='" . $item_link . "'>" . $item_title . "</a>"); echo ("<br />"); echo ($item_desc . "</p>"); } ?>
Mfano wa kufafanisha:
Kufikia huzina hii kwamba msaada kutoka JavaScript.
- PHP kuingia chanzo cha RSS chaguo.
- Kuchangia XML DOM kwa chanzo cha RSS chaguo.
- Kupata na kusaidia kuzingatia uadilifu kutoka chanzo cha RSS
- Kusoma uadilifu wa kwanza tatu wa RSS kwa sababu ya kichwa, na kusaidia kuzingatia.
- Nyuma Ajex Live Search
- Pya zaidi Ajex Poll