Web 開発の前段階のまとめ (3) では、JS と PHP 間の直接呼び出しは多くの場合不便を引き起こし、一度に 1 つのデータ結果しか送り返せないことがわかりました。 ajaxメソッドを利用することで、JSはphpで送信される大量のデータを一度に読み込むことができます。フォームを送信することで、PHP は大量の JS データを一度に読み取ることができます。
1. AJAX メソッドを借用して、php を通じてデータベースを読み取り、Web クライアントに大量のデータを表示します。
a. ページがロードされたらすぐに関数 Gett() を実行します。コードは次のとおりです:
<html><head><meta http-equiv="Content-Type" content="text/html; charset="gb2312"><title></title><script language="JavaScript" src="javascript.js"></script><script language="JavaScript">function Gett(){ if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlHttp=new XMLHttpRequest(); var url="responsexml.php"; xmlHttp.open("GET",url,false); xmlHttp.send(null); xmlHttp.onreadystatechange=getValue(xmlHttp); } else { // code for IE6, IE5 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); var url="responsexml.php"; xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState==4 && xmlHttp.status==200) { xmlDoc=xmlHttp.responseXML; nodes=xmlDoc.documentElement.childNodes; InputVoltage.innerHTML = nodes.item(3).text; OutputVoltage.innerHTML = nodes.item(7).text; OutputMinVoltage.innerHTML = nodes.item(34).text; OutputMaxVoltage.innerHTML = nodes.item(33).text; Frequency.innerHTML = nodes.item(13).text; xmlHttp = null; } } xmlHttp.open("GET",url,true); xmlHttp.send(null); } } </script></head><body onload="Gett()"><p> </p><div align="center"><br> <table width="75%" border="0" cellspacing="0"> <tr> <td width="25%" nowrap><br> <table width="75%" border="0" align="center" cellspacing="0"> <tr> <td width="50%" nowrap>InputVoltage</td> <td width="50%" height="22" nowrap> <span id='InputVoltage'></span> V </td> </tr> <tr> <td nowrap>Frequency</td> <td nowrap> <span id='Frequency'></span> Hz </td> </tr> </table></td> <td width="50%" nowrap> <div align="center"> </div></td> <td width="25%" nowrap> <table width="98%" height="100" border="0" cellspacing="0"> <tr> <td width="50%" nowrap>OutputVoltage</td> <td width="50%" height="22" nowrap> <span id='OutputVoltage'></span> V </td> </tr> <tr> <td nowrap>OutputMaxVoltage</td> <td height="22" nowrap> <span id='OutputMaxVoltage'></span> V </td> </tr> <tr> <td nowrap>OutputMinVoltage</td> <td height="22" nowrap> <span id='OutputMinVoltage'></span> V </td> </tr> </div></body></html>
すごいです
完全なコードのダウンロード: http://download.csdn.net/detail/aba13579/7877307
2. form メソッドでは、PHP サーバー側で $_GET() または $_POST() を使用して大量のデータを取得し、データベースに書き込みます。
a. を通じて、データを PHP サーバーにアップロードします。
<?php $dbh = new PDO("sqlite:upsdata.dat", null, null); $sth = $dbh->query('SELECT * FROM t_ups_rundata'); $result = $sth->fetchAll(); $i=0; $CountArray=0; foreach($result[0] as $x=>$x_value) { if($i%2==0) { $UPSData[$CountArray++]=$x_value; } $i++; }header('Content-Type: text/xml');echo "<?xml version='1.0' encoding='utf-8'?>";echo "<upsdataxml>"; echo "<protocol_id>$UPSData[0]</protocol_id>";echo "<curr_time>$UPSData[1]</curr_time>";echo "<input_phase>$UPSData[2]</input_phase>";echo "<inputvol_a>$UPSData[3]</inputvol_a>"; echo "<inputvol_b>$UPSData[4]</inputvol_b>"; echo "<inputvol_c>$UPSData[5]</inputvol_c>"; echo "<output_phase>$UPSData[6]</output_phase>";echo "<outputvol_a>$UPSData[7]</outputvol_a>"; echo "<outputvol_b>$UPSData[8]</outputvol_b>"; echo "<outputvol_c>$UPSData[9]</outputvol_c>"; echo "<output_load>$UPSData[10]</output_load>";echo "<batt_total_vol>$UPSData[11]</batt_total_vol>";echo "<batt_cap>$UPSData[12]</batt_cap>";echo "<input_fre>$UPSData[13]</input_fre>";echo "<ups_model>$UPSData[14]</ups_model>";echo "<ups_manufactory>$UPSData[15]</ups_manufactory>";echo "<ups_ver>$UPSData[16]</ups_ver>";echo "<rate_vol>$UPSData[17]</rate_vol>";echo "<rate_power>$UPSData[18]</rate_power>";echo "<rate_fre>$UPSData[19]</rate_fre>";echo "<rate_battvol>$UPSData[20]</rate_battvol>";echo "<is_acfail>$UPSData[21]</is_acfail>";echo "<is_bypass>$UPSData[22]</is_bypass>";echo "<is_battlow>$UPSData[23]</is_battlow>";echo "<is_upsfail>$UPSData[24]</is_upsfail>";echo "<is_shutdown>$UPSData[25]</is_shutdown>";echo "<is_testting>$UPSData[26]</is_testting>";echo "<is_ups_offline>$UPSData[27]</is_ups_offline>";echo "<e_temperature>$UPSData[28]</e_temperature>";echo "<e_humidity>$UPSData[29]</e_humidity>";echo "<input_default_vol>$UPSData[30]</input_default_vol>";echo "<batt_mon_vol>$UPSData[31]</batt_mon_vol>";echo "<ups_temp>$UPSData[32]</ups_temp>";echo "<output_max_vol>$UPSData[33]</output_max_vol>";echo "<output_min_vol>$UPSData[34]</output_min_vol>";echo "<batt_temp>$UPSData[35]</batt_temp>";echo "<is_horn>$UPSData[36]</is_horn>";echo "<is_ups_type>$UPSData[37]</is_ups_type>";echo "<is_guard>$UPSData[38]</is_guard>";echo "</upsdataxml>"; $dbh = null;?>
b. PHP サーバーは $_POST() を通じてデータを取得し、データベースに書き込みます
<html><head><meta http-equiv="Content-Type" content="text/html; charset="gb2312"><script language="JavaScript"></script></head><body> <form name="UPSCfg" target="id_iframe" method="post" action="UPSCfgForm.php"> <table width="80%" border="0" cellspacing="0" class="tableNormal" > <tr bgcolor="#0099FF"> </tr> <tr> <td class="tableSingularLine" width="50%" nowrap>UpsCommBaud</td> <td class="tableSingularLine" width="50%" nowrap> <select name="UpsCommBaud" size="1" type="text"> <option value="1200" <?php $b=2400; if ($b==1200) echo("selected"); ?> >1200</option> <option value="2400" <?php if (($b==2400)||($b==0)) echo("selected"); ?>>2400</option> <option value="4800" <?php if ($b==4800) echo("selected"); ?>>4800</option> <option value="9600" <?php if ($b==9600) echo("selected"); ?>>9600</option> <option value="14400" <?php if ($b==14400) echo("selected"); ?>>14400</option> <option value="19200" <?php if ($b==19200) echo("selected"); ?>>19200</option> <option value="38400" <?php if ($b==38400) echo("selected"); ?>>38400</option> </select> </td> </tr> <tr> <td class="tableSingularLine" nowrap>OfflineQueryTime</td> <td class="tableSingularLine" nowrap><input class="textEnaSty" name="OfflineQueryTime" type="text" value="1000" size="1"> </td> </tr> <tr> <td class="tableSingularLine" nowrap>OfflineQueryNum</td> <td class="tableSingularLine" nowrap><input class="textEnaSty" name="OfflineQueryNum" type="text" value="1" size="5"></td> </tr> </table> <p> <input class="inputButtonNormal" type="submit" name="b1" value="SubMit"> <input class="inputButtonNormal" type="reset" name="Reset" value="Cacel"> </p> <iframe name="id_iframe" style="display:none;" src="about:blank"></iframe> </form></body><html>
完全なコードのダウンロード: http:/ 3. AJAX メソッドを借用して、一度に 1 つのデータを PHP サーバーに渡し、一度に 1 つのデータを Web クライアントに返します。
次の Web サイトに詳しく紹介されています: http://www.w3school.com.cn/ajax/ajax_asp_php.asp ので、詳細は説明しません。