0

我是 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”中

有人可以帮忙吗?

4

3 回答 3

1

我认为最好的方法是将文件解析为 Dictionary(C#) 或 HashMap(Java),以便第一个数字是键,第二个是值。您可能应该缓存这个字典,这样您就不必为每个 ajax 调用创建它(因为 IO 操作非常昂贵!)。比在 ajax 请求中传递您的号码作为参数。在您的后端中,只需使用您刚刚作为 ajax 参数接收的键从字典中获取值并将其发送回客户端(确保执行所需的验证!)。在您的 ajax 成功处理程序中,只需使用结果更新您的 div 内容。

于 2013-10-20T06:54:09.307 回答
1

我会考虑你使用JSON。将您ids.txt转换为ids.json具有此内容的人:

{
 12345:54321
 23456:65432
 34567:76543
 45678:87654
 56789:98765
}

然后你可以解析ajax调用的数据,JSON.parse()你就有了一个对象。

一个使用 jQuery 的例子$.get

$.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]);
});
于 2013-10-20T07:18:50.273 回答
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]);

问候, 鲁贝尔

于 2013-10-20T07:56:08.850 回答