从ajax读取文本文件并将stringback发送到html文件

时间:2013-10-20 06:41:51

标签: javascript jquery html ajax

我是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”显示

有人可以帮忙吗?

3 个答案:

答案 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]);

此致 鲁贝尔