实现一个对比功能 [PHP or JS or jQuery]
用户输入数据与原始数据对比,然后输出不同数据的提示。PHP、JS、JQuery都行,哪种简单用那种,谢谢![图例]http://k.min.us/isnSa.GIF[代码...
用户输入数据与原始数据对比,然后输出不同数据的提示。
PHP 、JS、JQuery 都行,哪种简单用那种,谢谢!
[图例] http://k.min.us/isnSa.GIF
[代码]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数据对比输出不同之行</title>
<style type="text/css">
iframe,textarea,#output,input { width:250px; float:left; height:500px; margin-right:50px; border:1px solid #000}
textarea { overflow-x:hidden;overflow-y:hidden}
#output { height:450px }
input { height:40px; margin-top:10px}
</style>
</head>
<body>
<iframe src="cfg.txt" id="source" frameborder="0" border="0" cellspacing="0"></iframe>
<textarea></textarea>
<div id="output"></div>
<input type="submit" name="check" id="check" value="检测按钮" />
</body>
</html> 展开
PHP 、JS、JQuery 都行,哪种简单用那种,谢谢!
[图例] http://k.min.us/isnSa.GIF
[代码]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数据对比输出不同之行</title>
<style type="text/css">
iframe,textarea,#output,input { width:250px; float:left; height:500px; margin-right:50px; border:1px solid #000}
textarea { overflow-x:hidden;overflow-y:hidden}
#output { height:450px }
input { height:40px; margin-top:10px}
</style>
</head>
<body>
<iframe src="cfg.txt" id="source" frameborder="0" border="0" cellspacing="0"></iframe>
<textarea></textarea>
<div id="output"></div>
<input type="submit" name="check" id="check" value="检测按钮" />
</body>
</html> 展开
5个回答
展开全部
这个简单,给你思路,用php跟jquery结合就可以,你先把原来的数据定义为数组,然后输入数据,点击验证时候,判断你的输入是否在原来你定义的数组中,有则提示即可判断是否在数组中的php函数 in_array
如果不知道怎么搞 你百度HI我
如果不知道怎么搞 你百度HI我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这应该很简单的吧。。。
你最好把两组数据用数组保存,在用数组对比,这样很容易找出是那个不同,也容易输出,不用写太多if,应该就两个for循环就搞定吧。。
这方法很好用吧,呵呵
你最好把两组数据用数组保存,在用数组对比,这样很容易找出是那个不同,也容易输出,不用写太多if,应该就两个for循环就搞定吧。。
这方法很好用吧,呵呵
追问
帅哥,求实例,小白不太懂代码!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>数据对比输出不同之行</title>
<style type="text/css">
iframe,textarea,#output,input { width:250px; float:left; height:500px; margin-right:50px; border:1px solid #000}
textarea { overflow-x:hidden;overflow-y:hidden}
#output { height:450px }
input { height:40px; margin-top:10px}
</style>
<script language="javascript">
//根据id获取对象
function $(id) {
var obj = document.getElementById(id);
if (null == obj || undefined == obj)
return;
return obj;
}
function duiBi(){
var db="";
/*-----------------------------------A -----------------*/
var al=new Array();
al =document.getElementById("source").contentWindow.document.body.innerText ;//放到数组里面
var str=document.getElementById("source").contentWindow.document.body.innerText;//放到字符串里面
var s=0;//开始下标
var e=0;//结束下标
var at=new Array();
for(var i=0;i<al.length;i++){//循环这个数组
if(al[i].charCodeAt()==13){//把字符转成Unicode 判断是不是等于回车值
e=i;//给结束下标赋值
at[at.length]=str.substring(s,e);//截取回车前的字符放到新数组里面
s=i;//给开始下标赋值
}else if(i==(al.length-1)){//判断循环是否到了字符串最后
at[at.length]=str.substring(s,al.length);
}
}
/*----------------------------------B 下面的循环和上面是一个道理-----------------*/
var outal=new Array();
outal =document.getElementById("output").value ;
var outstr=document.getElementById("output").value;
var outs=0;
var oute=0;
var outat=new Array();
for(var i=0;i<outal.length;i++){
if(outal[i].charCodeAt()==13){
oute=i;
outat[outat.length]=outstr.substring(outs,oute);
outs=i;
}else if(i==(outal.length-1)){
outat[outat.length]=outstr.substring(outs,outal.length);
}
}
/*---------------------------------- 循环判断 A B- 里面的数据有那些不一样---------------*/
for(var i=0;i<at.length;i++){
var iso=false;
for(var y=0;y<outat.length;y++){
if(at[i] ==outat[y]){
iso=true;
}
}
if(!iso){
db=db+" \n "+at[i];
}
}
/*----------------把不一样的数据 写到 output1 div里面------------*/
if(db.length>0){
$("output1").innerText="以下数据有误:\n "+db;
}
}
</script>
</head>
<body>
<iframe src="cfg.txt" id="source" frameborder="0" border="0" cellspacing="0"></iframe>
<textarea id="output"></textarea>
<div id="output1"></div>
<input type="submit" name="check" id="check" value="检测按钮" onclick="duiBi()" />
</body>
</html>
时间仓促!好好看看 应该能懂的!
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>数据对比输出不同之行</title>
<style type="text/css">
iframe,textarea,#output,input { width:250px; float:left; height:500px; margin-right:50px; border:1px solid #000}
textarea { overflow-x:hidden;overflow-y:hidden}
#output { height:450px }
input { height:40px; margin-top:10px}
</style>
<script language="javascript">
//根据id获取对象
function $(id) {
var obj = document.getElementById(id);
if (null == obj || undefined == obj)
return;
return obj;
}
function duiBi(){
var db="";
/*-----------------------------------A -----------------*/
var al=new Array();
al =document.getElementById("source").contentWindow.document.body.innerText ;//放到数组里面
var str=document.getElementById("source").contentWindow.document.body.innerText;//放到字符串里面
var s=0;//开始下标
var e=0;//结束下标
var at=new Array();
for(var i=0;i<al.length;i++){//循环这个数组
if(al[i].charCodeAt()==13){//把字符转成Unicode 判断是不是等于回车值
e=i;//给结束下标赋值
at[at.length]=str.substring(s,e);//截取回车前的字符放到新数组里面
s=i;//给开始下标赋值
}else if(i==(al.length-1)){//判断循环是否到了字符串最后
at[at.length]=str.substring(s,al.length);
}
}
/*----------------------------------B 下面的循环和上面是一个道理-----------------*/
var outal=new Array();
outal =document.getElementById("output").value ;
var outstr=document.getElementById("output").value;
var outs=0;
var oute=0;
var outat=new Array();
for(var i=0;i<outal.length;i++){
if(outal[i].charCodeAt()==13){
oute=i;
outat[outat.length]=outstr.substring(outs,oute);
outs=i;
}else if(i==(outal.length-1)){
outat[outat.length]=outstr.substring(outs,outal.length);
}
}
/*---------------------------------- 循环判断 A B- 里面的数据有那些不一样---------------*/
for(var i=0;i<at.length;i++){
var iso=false;
for(var y=0;y<outat.length;y++){
if(at[i] ==outat[y]){
iso=true;
}
}
if(!iso){
db=db+" \n "+at[i];
}
}
/*----------------把不一样的数据 写到 output1 div里面------------*/
if(db.length>0){
$("output1").innerText="以下数据有误:\n "+db;
}
}
</script>
</head>
<body>
<iframe src="cfg.txt" id="source" frameborder="0" border="0" cellspacing="0"></iframe>
<textarea id="output"></textarea>
<div id="output1"></div>
<input type="submit" name="check" id="check" value="检测按钮" onclick="duiBi()" />
</body>
</html>
时间仓促!好好看看 应该能懂的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分析:这是一个二维对应表,可以考虑用哈希表实现!
程序:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>数据对比输出不同之行</title>
<style type="text/css">
iframe,textarea,#output,input { width:250px; float:left; height:500px; margin-right:50px; border:1px solid #000}
textarea { overflow-x:hidden;overflow-y:hidden}
#output { height:450px }
input { height:40px; margin-top:10px}
</style>
<script type="text/javascript">
//var colorTable = new Object(); //颜色表
function getDoc(fid){
var doc;
if (document.all){//IE
doc = document.frames[fid].document;
}else{//Firefox
doc = document.getElementById(fid).contentDocument;
}
return doc;
}
function parseText(text){
var o = new Array();
var line = text.split("\r\n"); //将每行存至line数组
for (i=0; i<line.length; i++){
line[i] = line[i].replace(/\"/g, "");
var idx = line[i].indexOf(" ");
var key = line[i].substring(0, idx);
var val = line[i].substring(idx+1); //将每行按空格分解
o.push({key:key, val:val});
}
return o;
}
function parseDoc(fid){
var doc = getDoc(fid);
if (doc == null) return;
var i;
var hash = new Object();
var o = parseText(doc.body.innerText);//解析cfg.txt
for (i=0; i<o.length; i++){
hash[o[i].key] = o[i].val; //存储颜色表
}
return hash;
}
function compareText(){
var colorTable = parseDoc('source'); //解析cfg.txt获得颜色表.
var _in = document.getElementById('input');
var _out = document.getElementById('output');
var i;
var s1 = "输出提示:\r\n\r\n";
var s2 = "未定义的符号:\r\n";
var s3 = "请修改以下数据:\r\n";
var _undefinfo = "";
var _errorinfo = "";
if (_in.innerText == "") return;
var o = parseText(_in.innerText); //解析用户输入
for (i=0; i<o.length; i++){
if (typeof(colorTable[o[i].key]) == "undefined"){ //颜色表不存在该属性
_undefinfo = _undefinfo + "-- "+o[i].key+"\r\n";
}
else if (colorTable[o[i].key] != o[i].val){ //颜色值不匹配
_errorinfo = _errorinfo + "-- "+o[i].key+" \""+colorTable[o[i].key]+"\"\r\n";
}
}
if (_undefinfo != "") _undefinfo = s2 + _undefinfo;
if (_errorinfo != "") _errorinfo = s3 + _errorinfo;
_out.innerText = s1+_undefinfo+_errorinfo;
}
</script>
</head>
<body>
<iframe src="cfg.txt" id="source" frameborder="0" border="0" cellspacing="0"></iframe>
<textarea id="input"></textarea>
<div id="output"></div>
<input type="submit" name="check" id="check" onclick="var o=document.getElementById('source');" value="检测按钮" />
</body>
</html>
----------------------
P.s:为支持中文,建议将charset改为gb2312.
程序:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>数据对比输出不同之行</title>
<style type="text/css">
iframe,textarea,#output,input { width:250px; float:left; height:500px; margin-right:50px; border:1px solid #000}
textarea { overflow-x:hidden;overflow-y:hidden}
#output { height:450px }
input { height:40px; margin-top:10px}
</style>
<script type="text/javascript">
//var colorTable = new Object(); //颜色表
function getDoc(fid){
var doc;
if (document.all){//IE
doc = document.frames[fid].document;
}else{//Firefox
doc = document.getElementById(fid).contentDocument;
}
return doc;
}
function parseText(text){
var o = new Array();
var line = text.split("\r\n"); //将每行存至line数组
for (i=0; i<line.length; i++){
line[i] = line[i].replace(/\"/g, "");
var idx = line[i].indexOf(" ");
var key = line[i].substring(0, idx);
var val = line[i].substring(idx+1); //将每行按空格分解
o.push({key:key, val:val});
}
return o;
}
function parseDoc(fid){
var doc = getDoc(fid);
if (doc == null) return;
var i;
var hash = new Object();
var o = parseText(doc.body.innerText);//解析cfg.txt
for (i=0; i<o.length; i++){
hash[o[i].key] = o[i].val; //存储颜色表
}
return hash;
}
function compareText(){
var colorTable = parseDoc('source'); //解析cfg.txt获得颜色表.
var _in = document.getElementById('input');
var _out = document.getElementById('output');
var i;
var s1 = "输出提示:\r\n\r\n";
var s2 = "未定义的符号:\r\n";
var s3 = "请修改以下数据:\r\n";
var _undefinfo = "";
var _errorinfo = "";
if (_in.innerText == "") return;
var o = parseText(_in.innerText); //解析用户输入
for (i=0; i<o.length; i++){
if (typeof(colorTable[o[i].key]) == "undefined"){ //颜色表不存在该属性
_undefinfo = _undefinfo + "-- "+o[i].key+"\r\n";
}
else if (colorTable[o[i].key] != o[i].val){ //颜色值不匹配
_errorinfo = _errorinfo + "-- "+o[i].key+" \""+colorTable[o[i].key]+"\"\r\n";
}
}
if (_undefinfo != "") _undefinfo = s2 + _undefinfo;
if (_errorinfo != "") _errorinfo = s3 + _errorinfo;
_out.innerText = s1+_undefinfo+_errorinfo;
}
</script>
</head>
<body>
<iframe src="cfg.txt" id="source" frameborder="0" border="0" cellspacing="0"></iframe>
<textarea id="input"></textarea>
<div id="output"></div>
<input type="submit" name="check" id="check" onclick="var o=document.getElementById('source');" value="检测按钮" />
</body>
</html>
----------------------
P.s:为支持中文,建议将charset改为gb2312.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询