网页开发的阶段总结(四)--JS与PHP之间大数据的传送

在前面 的网页开发的阶段总结(三)中,我们知道JS与PHP之间直接互相调用,往往有很多不便,而且一次只能传送一个数据结果进行返回。而通过ajax方法可以实现JS一次性读取php的所传送过来的大量数据。通过提交表单的方式,让php可以一次性读取JS的大量数据。

1、借用AJAX方法,通过php读取数据库将大量数据显示在网页客户端上。

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>

b、在服务端,将数据库的内容转为一维数组,并用xml格式保存起来。

<?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;
?>

完整代码下载:http://download.csdn.net/detail/aba13579/7877307

2、通过提交表单的方式,在php服务器端的用$_GET()或$_POST()方式获取大量的数据写入数据库。

a、通过  <input class="inputButtonNormal" type="submit" name="b1" value="SubMit">的type="submit"类型将数据上传到PHP服务端上。

 <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>

b、PHP服务器端通过$_POST()获取数据写入数据库

<?php
 $temp = array();

 $temp[0] = $_POST["UpsCommBaud"];
 $temp[1] = $_POST["OfflineQueryTime"];
 $temp[2] = $_POST["OfflineQueryNum"];

 try{ 

	$IPGuard ="sqlite:ipguard.dat";
	$dbh = new PDO($IPGuard, null, null);
	$dbh->exec("UPDATE t_ups_protocol set baudrate='$temp[0]'");
	$dbh->exec("UPDATE t_env_param set interval='$temp[1]',offLine_Count='$temp[2]'");
	$dbh->beginTransaction();
	$dbh = null;
	}
catch (PDOException $e)
{
   echo 'Connection failed: ' . $e->getMessage();
   $dbh = null;
}
?>

完整代码下载:http://download.csdn.net/detail/aba13579/7877311

3、借用AJAX方式,一次性传递一个数据到php服务器上并一次性将一个数据返回给web客户端。

以下网址有详细介绍:http://www.w3school.com.cn/ajax/ajax_asp_php.asp,故不再详述。

时间: 2024-10-13 01:41:39

网页开发的阶段总结(四)--JS与PHP之间大数据的传送的相关文章

四种武器--大数据与R,python,SAS,SPSS的关系?

武林中人很多都要求自己各种兵器都能够使用,但每个人都会有一个自己最擅长的兵器.以前这四种软件就如大数据里的"刀枪棍棒".兵器只是一部分,重要的还是我们自身对于大数据的理解,也就相当于是内功.毕竟,双方比武,兵器取胜的部分是很大,但不是决定因素!试想,一个内功高深的人跟一个只会使枪的人来比试,说不定对方摘叶就可以伤到那个只会使剑的人.......... 好吧!我们就一一揭开这四种"武器"的面纱! 先说R,与其说是一门语言,不如说是一个软件.他更多的应用是在数据量在中小

javaweb学习总结(三十四)——使用JDBC处理MySQL大数据

一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为: TINYTEXT.TEXT.MEDIUMTEXT和LONGTEXT TINYBLOB.BLOB.MEDIUMBLOB和L

javaweb(三十四)——使用JDBC处理MySQL大数据

一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为: TINYTEXT.TEXT.MEDIUMTEXT和LONGTEXT TINYBLOB.BLOB.MEDIUMBLOB和L

谈谈ODPS商业化(四):2014阿里巴巴大数据竞赛

几天前2014阿里巴巴大数据竞赛刚刚落下帷幕,第11名的F1分数.准确率和召回率是6.10%.6.28%和5.93%.前10名的成绩还未公布,他们会被邀请到阿里巴巴公司来,有机会和内部团队一起参与双11.选手们闲下来,开始在群里爆特征.开玩笑.交换联系方式. 这次海内外共有7276支队报名.比赛分为多个阶段:S1是线下海选,从S2开始上ODPS,每月底淘汰末位的100支队,直到7月31日尘埃落定.选手们需要像阿里数据分析师一样工作,完全依赖云端的ODPS平台上的SQL.Mapreduce和Xli

网页开发的阶段总结(三)--JS与PHP直接互调用

在公司项目的改造当中,经常会遇到js与php的函数互调的情况,而实际上JS与php的设计者是不提倡这两种语言直接进行调用的,一个是客户端语言,一个服务端语言,两者之间的交互往往靠的是ajax机制,get(),post()进行数据的传递.而且在两者在进行直接调用,往往有以下的限制: 1.首先,php与JS之间的互调只能在同个文件里,对其它文件的调用都会失败,无论是php还是JS的. 2.php与JS之间的调用只能针对的是函数,而对变量都不能实现引用,即在"<?php    ?>&quo

网页开发的阶段总结(二)

1.现在的浏览器都比较智能化,当数据库的数据有变化时,不会读取网页上的缓存数据,通过以下代码实现数据库的访问: var thePage = 'servesql.php'; myRand = parseInt(Math.random()*9999999999999999); var theURL = thePage +"?rand="+myRand; xmlhttp.open("GET", theURL ,true); xmlhttp.onreadystatechan

网页开发的阶段总结(一)

最近由于公司业务要求,将公司的用asp编写的网页改换成php编写的网页. 而网页的编写往往是涉及多种语言的编写以及之间的相互交叉使用. 1. php和ASP都是服务器的脚本语言,php的格式:<?php  ?>,  ASP的格式:<% %>, 在其中,可以混合使用HTML.脚本语言以及组件来创建服务器端功能的Internet应用程序. 2.Javascript是客户端的脚本语言,增加网页的互动性,简化HTML文段.格式:<script>   </script>

html与js和php之间实现数据交互

<div class="top3"> <input id="KeyWord" type="text" class="form1" name="keyWord" value="请输入关键字" onfocus="javascript:if(this.value=='请输入关键字')this.value='';"> <input type=&q

开发人员学Linux(14):CentOS7安装配置大数据平台Hadoop2.9.0

1.前言 "大云物移"是当年很火热的一个话题,分别指大数据.云计算.物联网和移动互联网,其中大数据领域谈论得多就是Hadoop.当然Hadoop不代表大数据,而是大数据处理领域的一个比较有名的开源框架而已,通常说的大数据包含了大数据的存放.大数据的分析处理及大数据的查询展示,本篇提到的Hadoop只不过是在其中的大数据的分析处理环节起作用,Apache提供了一个开源全家桶,包括了Hadoop.HBase.Zookeeper.Spark.Hive及Pig等一些框架.不过限于篇幅,本篇只介