📄 php_ajax_rss_reader.asp
字号:
document:</p>
<table class="ex" id="table12" border="1" width="100%">
<tr>
<td>
<pre>var xmlHttp</pre>
<pre>function showRSS(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
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
}
}</pre>
<pre>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;
}</pre>
</td>
</tr>
</table>
<h2>Example Explained</h2>
<p>The stateChanged() and GetXmlHttpObject functions are the same as in the
<a href="php_ajax_suggest.asp">PHP AJAX Suggest</a> chapter.</p>
<p><b>The showRSS() Function</b></p>
<p>Every time an option is selected in the input field this function executes
the following:</p>
<ol>
<li>Defines the url (filename) to send to the server</li>
<li>Adds a parameter (q) to the url with the selected option from the drop down box
</li>
<li>Adds a random number to prevent the server from using a cached file</li>
<li>Calls on the GetXmlHttpObject function to create an XMLHTTP object, and tells the object to execute a function
called stateChanged when a change is triggered</li>
<li>Opens the XMLHTTP object with the given url.</li>
<li>Sends an HTTP request to the server</li>
</ol>
<hr>
<h2>The PHP Page</h2>
<p>The server page called by the JavaScript code is a PHP file called "getrss.php":</p>
<table class="ex" id="table10" border="1" width="100%">
<tr>
<td>
<pre><?php
//get the q parameter from URL
$q=$_GET["q"];</pre>
<pre>//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");
}</pre>
<pre>$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);</pre>
<pre>//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;</pre>
<pre>//output elements from "<channel>"
echo("<p><a href='" . $channel_link
. "'>" . $channel_title . "</a>");
echo("<br />");
echo($channel_desc . "</p>");</pre>
<pre>//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;</pre>
<pre> echo ("<p><a href='" . $item_link
. "'>" . $item_title . "</a>");
echo ("<br />");
echo ($item_desc . "</p>");
}
?></pre>
</td>
</tr>
</table>
<h2>Example Explained - The PHP Page</h2>
<p>When an option is sent from the JavaScript the following
happens:</p>
<ol>
<li>PHP finds out which RSS feed was selected</li>
<li>An XML DOM object is created for the selected RSS feed</li>
<li>The elements from the RSS channel are found and outputted</li>
<li>The three first elements from the RSS items are looped through and outputted</li>
</ol>
<hr />
<a href="php_ajax_livesearch.asp"><img border="0" src="../images/btn_previous.gif" width="100" height="20" alt="Previous" /></a>
<a href="php_ajax_poll.asp"><img border="0" src="../images/btn_next.gif" width="100" height="20" alt="Next" /></a>
<br />
<hr />
<!-- **** SPOTLIGHTS 1 **** -->
<iframe src="../banners/aspallframe.asp" height="110" width="485"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
<hr />
<!-- **** SPOTLIGHTS 2 **** -->
<!-- **** SPOTLIGHTS 3 **** -->
<table cellpadding="0" cellspacing="0"><tr><td width="72"></td><td>
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*txt*/
google_ad_slot = "1699448869";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td></tr></table>
<hr />
<center>
<iframe style="background-color:#ffffff" src="../banners/aspallbannerframe.asp" height="60" width="468" marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
</center>
<hr />
<table>
<tr>
<td><img src="../images/diploma.jpg" alt="diploma" /></td>
<td> </td>
<td valign="top">
<h2>Get Your Diploma!</h2>
<p>W3Schools' Online Certification Program is the perfect solution for busy
professionals who need to balance work, family, and career building.</p>
<p>The <a href="../cert/default.asp">HTML Certificate</a> is for developers who want to document their knowledge of HTML, XHTML, and CSS.</p>
<p>The <a href="../cert/default.asp">ASP Certificate</a> is for developers who want to document their knowledge of ASP, SQL, and ADO.</p>
</td>
</tr>
</table>
<br />
<hr />
<!-- **** END SPOTLIGHTS **** -->
</td></tr>
<tr><td>
<p>Jump to: <a href="#top" target="_top"><b>Top of Page</b></a>
or <a href="../default.asp" target="_top"><b>HOME</b></a> or
<a href='php_ajax_rss_reader.asp@output=print' target="_blank">
<img src="../images/print.gif" alt="Printer Friendly" border="0" />
<b>Printer friendly page</b></a></p>
<p>W3Schools provides material for training only. We do not warrant the correctness of its contents.
The risk from using it lies entirely with the user.
While using this site, you agree to have read and accepted our
<a href="../about/about_copyright.asp">terms of use</a> and
<a href="../about/about_privacy.asp">privacy policy</a>.
</p>
<p><a href="../about/about_copyright.asp">Copyright 1999-2008</a> by Refsnes Data. All Rights Reserved.</p>
<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>
<td width="60%" align="left">
<a href="../../validator.w3.org/check@uri=referer" target="_blank">
<img src="../images/vxhtml.gif" alt="Validate" width="88" height="31" border="0" /></a>
<a href="../../jigsaw.w3.org/css-validator/check@uri=referer" target="_blank">
<img src="../images/vcss.gif" alt="Validate" width="88" height="31" border="0" /></a>
<a href="../../www.w3.org/WAI/WCAG1A-Conformance" title="Explanation of Level A Conformance" target="_blank">
<img src="../images/wai.gif" alt="W3C-WAI level A conformance icon" width="88" height="31" border="0" /></a>
</td>
<td>
<a href="../xhtml/xhtml_howto.asp" target="_top">W3Schools was converted to XHTML in December 1999</a>
</td></tr>
</table>
</td></tr>
</table>
</td>
<td width="145" align="center" valign="top">
<iframe style="background-color:#f1f1f1" src="../banners/rightcolumn.asp@secid=php" height="1500" width="147"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
</iframe>
</td>
</tr></table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -