PHP and AJAX RSS Reader
- ບ່ອນໄກກ່ອນ AJAX Live Search
- ບ່ອນໄກຕໍ່ໄປ AJAX Poll
RSS Reader ຂອງ PHP ໃຊ້ສຳລັບອ່ານ RSS Feed:
RSS ອະນຸຍາດຄົ້ນຄວ້າຂ່າວ ແລະ ການປັບປຸງຢ່າງຫ້າວ:
AJAX RSS Reader
AJAX RSS Reader: ໃນຄະນະນີ້, ພວກເຮົາຈະສະແດງ RSS Reader, ເຊິ່ງວ່າສິ່ງຂອງ RSS ຈະບັນທຶກເຂົ້າໄປໃນເວັບໄຊບໍ່ຕ້ອງຂັບເຄື່ອງຫົວໜ້າບໍ່:
ລົງຄະແນນ RSS ຂ່າວທີ່ນັ້ນໃນລະບົບບັນທຶກຕິດຕາມໃນລາຍການລາຍການ
ຄວາມທີ່ມີໃນຄະແນນນີ້ຢູ່ນັ້ນມີສາມຢ່າງ:
- HTML ຟອມທີ່ລະອຽດ
- JavaScript
- PHP 页面
HTML ຟອມ
ນີ້ແມ່ນຫົວໜ້າ HTML. ມັນກວມເອົາຫົວໜ້າ HTML ທີ່ລະອຽດລາຍການ ແລະ ຢ່າງເຊື່ອມຕໍ່ JavaScript:
<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>
ຄວາມຄິດທີ່ສະແດງ - HTML Form
ຄືທີ່ທ່ານເຫັນຢູ່ດ້ານລຸ່ມຂອງເວັບໄຊ HTML ມີຟອມແບບລະບົບລະບົບ HTML ທີ່ມີອິດສະຫລະທະບັດລົງແລ້ວ
ວຽກງານຂອງຟອມແບບ
- ຖ້າຜູ້ຄົນເລືອກອິດສະຫລະພາບຈາກອິດສະຫລະທະບັດລົງແລ້ວຈະກະຕຸ້ນເຫດການ
- ຖ້າເຫດການຖືກກະຕຸ້ນໃຫ້ດຳເນີນການ showRSS()
ຢູ່ດ້ານລຸ່ມຂອງຟອມແບບນີ້ມີ <div>ຊື່ "rssOutput". ມັນຖືກໃຊ້ຄືການຄຳປະກອບຂອງຂໍ້ມູນທີ່ກັບຄືນຈາກການໃຊ້ showRSS()
JavaScript
JavaScript 代码ບັນຈຸໃນ "getrss.js" ແລະກັບບັນນາທິການ HTML
var xmlHttp 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 } } 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; }
ຄວາມອະທິບາຍວິຊາ
stateChanged() ແລະ ການໃຊ້ XMLHTTPObject ພວກມັນກັບ PHP and AJAX Request 这一节中的例子相同。
showRSS() 函数
每当在下拉框中选择选择时,该函数就会执行:
- 定义发送到服务器的 url (文件名)
- 把参数 (q) 添加到 url,参数内容是下拉框中的被选项
- 添加一个随机数,以防止服务器缓存文件
- 调用 GetXmlHttpObject 函数来创建 XMLHTTP 对象,并告知该对象在触发一个改变时去执行 stateChanged 函数
- 通过给定的 url 来打开 XMLHTTP
- 把 HTTP 请求发动到服务器
PHP 页面
调用 JavaScript 代码的服务器页面是名为 "getrss.php" 的 PHP 文件:
load($xml); //get elements from "" $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 " " echo(" " . $channel_title . ""); 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>"); } ?>
ຄວາມອະທິບາຍວິຊາ
ຈະເກີດຂຶ້ນເມື່ອຕົວເລືອກຈະສົ່ງຕໍ່ JavaScript
- PHP ຄົ້ນຫາ RSS feed ທີ່ໄດ້ເລືອກ
- ສ້າງ XML DOM Object ສຳລັບ RSS feed ທີ່ເລືອກ
- ຄົ້ນຫາ ແລະ ສະແດງອອກສິ່ງຈາກ RSS Feed
- ກວດສອບພັກ RSS ທີ່ສາມຄັ້ງທຳອິດ ແລະ ການສະແດງອອກ
- ບ່ອນໄກກ່ອນ AJAX Live Search
- ບ່ອນໄກຕໍ່ໄປ AJAX Poll