我是ajax的新手,我有一个带数字值的文本文件
与ids.txt类似,此处12345的映射值为54321
12345,54321
23456,65432
34567,76543
45678,87654
56789,98765
这是我的Html文件
<html><body>
<INPUT TYPE="TEXT" NAME="text" SIZE="25" >
<button type="button" onclick="getId()">Submit</button>
<div id="myDiv"><h2></h2></div>
</body></html>
如果我在上面的文本框中输入值12345,我应该从ids.txt文件中获取其映射值54321,它应该以div标签“myDiv”显示
有人可以帮忙吗?
答案 0 :(得分:1)
我认为最好的方法是将文件解析为Dictionary(C#)或HashMap(Java),这样第一个数字就是键,第二个数字就是值。您应该缓存此字典,这样您就不必为每个ajax调用创建它(因为IO操作非常昂贵!)。比在ajax请求中将您的号码作为参数传递。在你的后端只需使用你刚刚收到的密钥作为ajax参数从字典中获取值并将其发送回客户端(确保执行所需的验证!)。在您的ajax成功处理程序中,只需使用结果更新div内容即可。
答案 1 :(得分:1)
我会考虑使用JSON。使用以下内容将ids.txt
转换为ids.json
:
{
12345:54321
23456:65432
34567:76543
45678:87654
56789:98765
}
然后你可以用JSON.parse()
解析ajax调用的数据并且你有一个对象。
使用$.get
的jQuery示例:
$.get("ids.json",function(data){
//jQuery probably has already parsed the json
//get the text out of the textfield
var text = $('input[name="text"]').val();
//display the number in #myDiv
$("#myDiv").text(data[text]);
});
答案 2 :(得分:0)
首先逐行从文件中检索文本,如下所示:
var file = "ids.txt";
function getFile(){
$.get(file,function(txt){
var lines = txt.responseText.split("\n");
// all the text will be stored into the lines as array
// lines[0] will contain 12345,54321
var arr;var indexA;
for (var i = 0, len = lines.length; i < len; i++) {
arr.push(lines[i].split(","))
}
for(var j=0;leng=arr.length;j<length;j+=2){
indexA[arr[j]]=arr[j+1];// index array will store value as key:12345,value=54321
}
});
}
然后可以将文本字段值与indexA数组进行比较,如果索引与类型化值匹配,那么该索引值可以显示为$("#myDiv").text(indexA[indexValue]);
此致 鲁贝尔