当前位置:首页 > CN2资讯 > 正文内容

Web,PHP,PHP AJAX操作闲谈;php+ajax

3天前CN2资讯


PHP_AJAX 2015-1-3 11:44


一、AJAX 简介
1、AJAX
AJAX = Asynchronous JavaScript And XML(异步 JavaScript 及 XML);AJAX 是 Asynchronous JavaScript And XML 的首字母缩写。
AJAX 并不是一种新的编程语言,而仅仅是一种新的技术,它可以创建更好、更快且交互性更强的 web 应用程序。AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据。通过在幕后与 web 服务器交换数据,而不是每当用户作出改变时重载整个 web 页面,AJAX 技术可以使网页更迅速地响应。


2、AJAX基于哪些开放的标准
JavaScript、XML、HTML、CSS;
在 AJAX 中使用的开放标准被良好地定义,并得到所有主要浏览器的支持。AJAX 应用程序独立于浏览器和平台。(可以说,它是一种跨平台跨浏览器的技术)。


3、AJAX作用
AJAX 事关更好的 Internet 应用程序!为嘛这么说呢?您啊听我慢慢说!与桌面应用程序相比,Web 应用程序有很多优势:可拥有更多用户;更容易安装和维护;更容易开发;但是, 应用程序不总是象传统应用程序那样强大和友好。通过 AJAX,可以使 Internet 应用程序更加强大(更轻巧、更快速,且更易使用)。


4、开始AJAX
没有什么新知识需要学习。AJAX 基于开放的标准。而这些标准已被大多数开发者使用多年。大多数 web 应用程序可通过使用 AJAX 技术进行重写,来替代传统的 HTML 表单。


5、AJAX 使用 XML 和 HTTP 请求
传统的 web 应用程序会把数据提交到 web 服务器(使用 HTML 表单)。在 web 服务器把数据处理完毕之后,会向用户返回一张完整的新网页。由于每当用户提交输入,服务器就会返回新网页,传统的 web 应用程序往往运行缓慢,且越来越不友好。
通过 AJAX,web 应用程序无需重载网页,就可以发送并取回数据。完成这项工作,需要通过向服务器发送 HTTP 请求(在幕后),并通过当服务器返回数据时使用 JavaScript 仅仅修改网页的某部分。一般使用 XML 作为接收服务器数据的格式,尽管可以使用任何格式,包括纯文本。


6、PHP 和 AJAX
不存在什么 AJAX 服务器。AJAX 是一种在浏览器运行的技术。它使用浏览器与 web 服务器之间的异步数据传输,使网页从服务器请求少量的信息,而不是整张页面。
AJAX 是一种独立于 web 服务器软件的 web 浏览器技术。但是,在本教程中,我们将集中在运行在 PHP 服务器上的实际案例,而不是 AJAX 的工作原理。




二、AJAX XMLHttpRequest
前言:XMLHttpRequest 对象使 AJAX 成为可能。
1、创建 XMLHttpRequest 对象
前言:不同的浏览器使用不同的方法来创建 XMLHttpRequest 对象。Internet Explorer 使用 ActiveXObject。其他浏览器使用名为 XMLHttpRequest 的 JavaScript 内建对象。
要克服这个问题,可以使用这段简单的代码达到兼容:

var XMLHttp=null if (window.XMLHttpRequest) { XMLHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); }




2、改进代码
前言:有些程序员喜欢使用最新最快的版本来创建XMLHttpRequest 对象。加载微软最新版本的 "Msxml2.XMLHTTP",在 Internet Explorer 6 中可用,如果无法加载,则后退到 "Microsoft.XMLHTTP",在 Internet Explorer 5.5 及其后版本中可用。

// 创建XMLHttpRequest对象 function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { // 在 Internet Explorer 6 及更高的版本可用(微软方式) xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { // Internet Explorer 5.5 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }






三、PHP 和 AJAX 请求
实例:实现text智能匹配功能
思路:
>1、客户端:监听text keyup事件,触发时,进行AJAX请求,发送匹配字串;
>2、服务器:接收字串;收集匹配字串并返回以作响应;
1、html form 表单

<html> <head> <script src="clienthint.js"></script> </head> <body> <form> First Name: <input type="text" id="txt1" οnkeyup="showHint(this.value)" /> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html>


2、JavaScript

->clienthint.js var xmlHttp; function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="gethint.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("txtHint").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; }


3、PHP 页面

->gethint.php <?php // 名字数组 $a[]="Anna"; $a[]="Brittany"; $a[]="Cinderella"; $a[]="Diana"; $a[]="Eva"; $a[]="Fiona"; $a[]="Gunda"; $a[]="Hege"; $a[]="Inga"; $a[]="Johanna"; $a[]="Kitty"; $a[]="Linda"; $a[]="Nina"; $a[]="Ophelia"; $a[]="Petunia"; $a[]="Amanda"; $a[]="Raquel"; $a[]="Cindy"; $a[]="Doris"; $a[]="Eve"; $a[]="Evita"; $a[]="Sunniva"; $a[]="Tove"; $a[]="Unni"; $a[]="Violet"; $a[]="Liza"; $a[]="Elizabeth"; $a[]="Ellen"; $a[]="Wenche"; $a[]="Vicky"; // 请求参赛 $q=$_GET["q"]; // 寻求匹配 if (strlen($q) > 0) { $hint=""; for($i=0; $i<count($a); $i++) { if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q)))) { if ($hint=="") { $hint=$a[$i]; } else { $hint=$hint." , ".$a[$i]; } } } } // 结果响应 if ($hint == "") { $response="no suggestion"; } else { $response=$hint; } echo $response; // 想客户端响应; ?>




四、PHP 和 AJAX XML 实例 2015/1/4 0:22
引言:AJAX 可与 XML 文件进行交互式通信。
功能:如何使用 AJAX 技术从 XML 文件中读取信息。
思路:
>1、监听select onchange事件;进行AJAX请求;
>2、接受请求参数;过滤数据;处理数据;返回数据;

1、HTML表单 <html> <head> <script src="selectcd.js"></script> </head> <body> <form> Select CD: <select name="cds" οnchange="showCD(this.value)"> <option value="Bob Dylan">Bob Dylan</option> <option value="Bee Gees">Bee Gees</option> <option value="Cat Stevens">Cat Stevens</option> </select> </form> <p> <div id="txtHint"><b>CD info will be listed here.</b></div> </p> </body> </html> 2、XML文件 ->cd_catalog.xml <CATALOG> <CD> <TITLE>主题</TITLE> <ARTIST>作家</ARTIST> <COUNTRY>国家</COUNTRY> <COMPANY>公司</COMPANY> <PRICE>价格</PRICE> <YEAR>年份</YEAR> </CD> </CATALOG> 3、JavaScript ->selectcd.js var xmlHttp; function showCD(str) { xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="getcd.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("txtHint").innerHTML=xmlHttp.responseText } } // 创建XMLHttpRequest对象 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; } 4、PHP 页面 ->getcd.php <?php // 1、请求参数 $q=$_GET["q"]; /// XML DOM 解析器 // 2、加载XML $xmlDoc = new DOMDocument(); $xmlDoc->load("cd_catalog.xml"); // 3、作者数组 $x=$xmlDoc->getElementsByTagName('ARTIST'); // 4、循环数组 for ($i=0; $i<=$x->length-1; $i++) { if ($x->item($i)->nodeType==1){// nodeType为1则为元素; if ($x->item($i)->childNodes->item(0)->nodeValue == $q) { $y=($x->item($i)->parentNode); // 保存匹配CD; } } } // 5、CD子元素 $cd=($y->childNodes); for ($i=0; $i<$cd->length; $i++) { // 向客户端输出响应,输出的属于responseText值; if ($cd->item($i)->nodeType==1){ echo($cd->item($i)->nodeName); echo(": "); echo($cd->item($i)->childNodes->item(0)->nodeValue); echo("<br />"); } } ?>





五、PHP 和 AJAX MySQL 数据库实例
引言:AJAX 可用来与数据库进行交互式通信。
实例:如何使用 AJAX 技术从 MySQL 数据库中读取信息。
1、HTML 表单

<html> <head> <script src="selectuser.js"></script> </head> <body> <form> Select User: <select name="users" οnchange="showUser(this.value)"> <option value="1">Peter Griffin</option> <option value="2">Lois Griffin</option> <option value="3">Glenn Quagmire</option> <option value="4">Joseph Swanson</option> </select> </form> <p> <div id="txtHint"><b>User info will be listed here.</b></div> </p> </body> </html> 2、JavaScript脚本 ->selectuser.js var xmlHttp; function showUser(str) { xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="getuser.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") { // xmlHttp.responseText为响应文本 document.getElementById("txtHint").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; }


3、PHP页面

->getuser.php <?php // 请求参数 $q=$_GET["q"]; // 创建链接 $con = mysql_connect('localhost', 'peter', 'abc123'); if (!$con) { die('Could not connect: ' . mysql_error()); } // 定数据库 mysql_select_db("ajax_demo", $con); // 执行查询 $sql="SELECT * FROM user WHERE id = '".$q."'"; $result = mysql_query($sql); // 输出响应 echo "<table border='1'> <tr> <th>Firstname</th> <th>Lastname</th> <th>Age</th> <th>Hometown</th> <th>Job</th> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['FirstName'] . "</td>"; echo "<td>" . $row['LastName'] . "</td>"; echo "<td>" . $row['Age'] . "</td>"; echo "<td>" . $row['Hometown'] . "</td>"; echo "<td>" . $row['Job'] . "</td>"; echo "</tr>"; } echo "</table>"; // 关闭连接 mysql_close($con); ?>




六、PHP 和 AJAX responseXML 实例
引言:AJAX 可用于以 XML 返回数据库信息。
实例:AJAX Database 转 XML 实例 
功能:如何从 MySQL 数据库中读取信息;如何把数据转换为 XML 文档并加以响应;
意义:把 XML 文档作为响应来接收,使我们有能力更新页面的多个位置,而不仅仅是接收一个 PHP 输出并显示出来。
1、HTML 表单

<html> <head> <script src="responsexml.js"></script> </head> <body> <form> Select User: <select name="users" οnchange="showUser(this.value)"> <option value="1">Peter Griffin</option> <option value="2">Lois Griffin</option> <option value="3">Glenn Quagmire</option> <option value="4">Joseph Swanson</option> </select> </form> <h2> <span id="firstname"></span> <span id="lastname"></span> </h2> <span id="job"></span> <div > <span id="age_text"></span> <span id="age"></span> <span id="hometown_text"></span> <span id="hometown"></span> </div> </body> </html>


2、JavaScript代码

->responsexml.js var xmlHttp; function showUser(str) { xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="responsexml.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") { // 响应XML xmlDoc=xmlHttp.responseXML; // firstname document.getElementById("firstname").innerHTML= xmlDoc.getElementsByTagName("firstname")[0].childNodes[0].nodeValue; // lastname document.getElementById("lastname").innerHTML= xmlDoc.getElementsByTagName("lastname")[0].childNodes[0].nodeValue; // job document.getElementById("job").innerHTML= xmlDoc.getElementsByTagName("job")[0].childNodes[0].nodeValue; // age document.getElementById("age_text").innerHTML="Age: "; document.getElementById("age").innerHTML= xmlDoc.getElementsByTagName("age")[0].childNodes[0].nodeValue; // hometown document.getElementById("hometown_text").innerHTML="<br/>From: "; document.getElementById("hometown").innerHTML= xmlDoc.getElementsByTagName("hometown")[0].childNodes[0].nodeValue; } } function GetXmlHttpObject() { var objXMLHttp=null; if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest() } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") } return objXMLHttp }


 3、PHP 页面

->responsexml.php <?php header('Content-Type: text/xml'); // 响应类型; header("Cache-Control: no-cache, must-revalidate"); // 以防止缓存; header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //A date in the past // 请求参数 $q=$_GET["q"]; // 创建链接 $con = mysql_connect('localhost', 'peter', 'abc123'); if (!$con) { die('Could not connect: ' . mysql_error()); } // 定数据库 mysql_select_db("ajax_demo", $con); // 执行查询 $sql="SELECT * FROM user WHERE id = ".$q.""; $result = mysql_query($sql); // xml响应 echo '<?xml version="1.0" encoding="ISO-8859-1"?> <person>'; while($row = mysql_fetch_array($result)) { echo "<firstname>" . $row['FirstName'] . "</firstname>"; echo "<lastname>" . $row['LastName'] . "</lastname>"; echo "<age>" . $row['Age'] . "</age>"; echo "<hometown>" . $row['Hometown'] . "</hometown>"; echo "<job>" . $row['Job'] . "</job>"; } echo "</person>"; // 关闭连接 mysql_close($con); ?>






七、PHP 和 AJAX Live Search
引言:AJAX 可为用户提供更友好、交互性更强的搜索体验。
1、AJAX Live Search
前言:AJAX Live Search,实时搜索;实时的搜索与传统搜索相比,具有很多优势:
当键入数据时,显示匹配结果;
当继续键入数据时,结果过滤;
如果结果太少,删除字符可获得更宽范围;


2、实时搜索实例
(1)、XML文档

->links.xml <pages> <link> <title>页面标题</title> <url>页面地址</url> </link> </pages> (2)、HTML页面 ->livesearch.html <html> <head> <script src="livesearch.js"></script> <style type="text/css"> #livesearch { margin:0px; width:194px; } #txt1 { margin:0px; } </style> </head> <body> <form> <input type="text" id="txt1" size="30" οnkeyup="showResult(this.value)"> <div id="livesearch"></div> </form> </body> </html>


(3)、JavaScript代码

->livesearch.js var xmlHttp; function showResult(str) { if (str.length==0) { document.getElementById("livesearch").innerHTML=""; document.getElementById("livesearch"). style.border="0px"; return; } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="livesearch.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("livesearch").innerHTML=xmlHttp.responseText; document.getElementById("livesearch").style.border="1px solid #A5ACB2"; } } 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; } (4)、PHP 页面 ->livesearch.php // 代码会搜索 XML 文件中匹配搜索字符串的标题,并以 HTML 返回结果 <?php // 加载XML $xmlDoc = new DOMDocument(); $xmlDoc->load("links.xml"); // 连接数组 $x=$xmlDoc->getElementsByTagName('link'); // 请求参数 $q=$_GET["q"]; // 寻找匹配 if (strlen($q) > 0) { $hint=""; // 响应字串; for($i=0; $i<($x->length); $i++) { $y=$x->item($i)->getElementsByTagName('title'); //title元素数组; $z=$x->item($i)->getElementsByTagName('url'); //url元素数组; if ($y->item(0)->nodeType==1) { // 是否匹配_stristr()_查找字符串在另一字符串中第一次出现的位置(大小写不敏感) if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q)) { if ($hint=="") { $hint="<a href='" . $z->item(0)->childNodes->item(0)->nodeValue . "' target='_blank'>" . $y->item(0)->childNodes->item(0)->nodeValue . "</a>"; } else { $hint=$hint . "<br /><a href='" . $z->item(0)->childNodes->item(0)->nodeValue . "' target='_blank'>" . $y->item(0)->childNodes->item(0)->nodeValue . "</a>"; } } } } } // 返回响应 if ($hint == "") { $response="no suggestion"; } else { $response=$hint; } echo $response; ?>




八、PHP 和 AJAX RSS 阅读器_2015/1/5 0:40
引言:RSS 阅读器用于阅读 RSS Feed(订阅)。RSS 允许对新闻和更新进行快速浏览。
实例:AJAX RSS 阅读器实现,通过它,来自 RSS 的内容在不进行刷新的情况下载入网页。
1、HTML表单

->getrss.html <html> <head> <script type="text/javascript" src="getrss.js"></script> </head> <body> <form> Select an RSS-Feed: <select οnchange="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> 2、JavaScript代码 ->getrss.js 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; }


3、PHP 页面

->getrss.php <?php // 请求参数 $q=$_GET["q"]; // 订阅XML if($q=="Google") { $xml=("http:///news?ned=us&topic=h&output=rss"); } elseif($q=="MSNBC") { $xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml"); } // 加载XML $xmlDoc = new DOMDocument(); $xmlDoc->load($xml); // 首个channel $channel=$xmlDoc->getElementsByTagName('channel')->item(0); // channel标题 $channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; // channel链接 $channel_link = $channel->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; // channel描述 $channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; // 输出channel信息 echo("<p><a href='".$channel_link."'>".$channel_title ."</a>"); echo("<br />"); echo($channel_desc."</p>"); //输出item元素 $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>"); } ?>




九、PHP 和 AJAX 投票(Poll)
实例:AJAX 投票,投票程序,网页在不重新加载的情况下,就可以获得结果。
1、HTML表单

<html> <head> <script src="poll.js"></script> </head> <body> <div id="poll"> <h2>Do you like PHP and AJAX so far?</h2> <form> Yes: <input type="radio" name="vote" value="0" οnclick="getVote(this.value)"><br /> No: <input type="radio" name="vote" value="1" οnclick="getVote(this.value)"> </form> </div> </body> </html>


2、文本文件_存储来自投票程序的数据。注释:记得只允许您的 web 服务器来编辑该文本文件。不要让其他人获得访问权,除 web 服务器 (PHP)。
->poll_result.txt
0||0
3、JavaScript

->poll.js var xmlHttp; function getVote(int) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="poll_vote.php"; url=url+"?vote="+int; 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("poll").innerHTML=xmlHttp.responseText; } } function GetXmlHttpObject() { var objXMLHttp=null; if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); } return objXMLHttp; }


4、PHP页面

->poll_vote.php <?php // 请求参数 $vote = $_REQUEST['vote']; // 读取文件:file()函数把整个文件读入数组中,以行为单元; $filename = "poll_result.txt"; $content = file($filename); // 处理数据:化成数组 $array = explode("||", $content[0]); //把第一行字符串打散为数组; $yes = $array[0]; $no = $array[1]; if ($vote == 0) { $yes = $yes + 1; } if ($vote == 1) { $no = $no + 1; } // 写入文件:把结果写入文本 $insertvote = $yes."||".$no; $fp = fopen($filename,"w"); // 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 fputs($fp,$insertvote); // fputs() 函数写入文件(可安全用于二进制文件)。fputs() 函数是 fwrite() 函数的别名。 fclose($fp); ?> <h2>Result:</h2> <table> <tr> <td>Yes:</td> <td> <!--round(x,prec) 函数对浮点数进行四舍五入。prec规定小数点后的位数--> <img src="poll.gif" width='<?php echo(100 * round($yes/($no+$yes),2)); ?>' height='20'> <?php echo(100 * round($yes/($no+$yes),2)); ?>% </td> </tr> <tr> <td>No:</td> <td> <img src="poll.gif" width='<?php echo(100 * round($no/($no+$yes),2)); ?>' height='20'> <?php echo(100 * round($no/($no+$yes),2)); ?>% </td> </tr> </table>
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26304.html

    分享给朋友:

    “Web,PHP,PHP AJAX操作闲谈;php+ajax” 的相关文章

    如何通过v2ray回国节点轻松访问中国大陆互联网

    回国节点的基本概念 回国节点在最近几年逐渐成为了许多用户在国外访问中国大陆内容的重要工具。随着互联网的迅猛发展,很多人希望在国外能够轻松访问国内的一些服务和网站,而v2ray提供的回国节点正好满足了这样的需求。通过这些节点,用户可以实现网络回国,无缝连接到中国大陆的互联网。 v2ray是一个灵活而高...

    Linode Speed Test: 提升云服务性能的关键指南

    从2003年成立以来,Linode已经在云计算领域中扮演了重要角色。作为一家美国主机服务商,它的目标是为开发者提供全面而灵活的云计算解决方案。个人开发者、小型企业甚至大型企业都能在这里找到适合自用的工具。Linode不止提供基础的主机服务,还围绕开发者的需求不断迭代产品,确保用户体验越发顺畅。 同时...

    SSH Client Windows 登录指南:轻松配置与高级功能使用

    SSH 客户端在 Windows 中的概述 SSH,也就是安全外壳协议,是一种用来在网络中进行安全数据传输的协议。它确保数据的机密性和完整性,这对于网络管理员和开发者来说是至关重要的。在Windows中,SSH客户端直接关系到我们如何安全地登录到远程计算机。通过SSH,用户可以安全地执行命令、传输文...

    主机论坛:获取信息与交流经验的最佳平台

    主机论坛概述 在当今的数字时代,主机论坛作为一个专注于域名、主机、VPS和服务器的讨论与信息交流平台,显得尤为重要。对于站长、开发者和一般用户来说,它们不仅是资讯获取的渠道,更是一个技术交流和问题解决的空间。主机论坛通过汇聚来自不同背景的用户,形成了一个活跃的社区,每个人都能找到自己感兴趣的话题,分...

    服务器租用的全面指南:如何选择和管理最合适的服务器

    1. 服务器租用概述 服务器租用是许多企业和个人在建设网站或部署应用时的首选方式,指的是用户支付一定的费用来获得服务器的使用权。这样的模式让用户不需要高额的初始投资,可以随时按需租用相应配置的服务器。这在当今快速发展的数字时代尤为重要,无论是初创企业还是成熟企业,都能从中获得灵活性和成本效益。 想象...

    AMD Ryzen VPS 性能测评:RackNerd 的优越体验与机房对比

    当我开始使用RackNerd的VPS服务时,我被它的低价和强大性能所吸引。作为一个刚入驻云计算的用户,我知道许多商家提供VPS,但RackNerd以十美元每年的超低价格引起了我的注意。而真正让我印象深刻的是它的稳定性与出色的售后服务。我曾多次遇到技术问题,售后支持总能在第一时间给我回应,这让我感受到...