2016-02-28 163 views
-1

我有读取一个JSON文件,有很多在这信息的Node.js服务器。其中之一是一个人的ID,我在我的HTML页面中有一个搜索框我想为客户端找一个jquery方法(需要ajax)来查找用户放在搜索框中的ID是否与ID在JSON中,如果是我想返回关于该人的一些信息,让我们说用户的名字和用户名。搜索框结果== JSON结果

注:我100%肯定,我的server.js文件的工作。

请帮助我,我很亲切jQuery的一个新手。

我至今;

$(document).ready(function(){ 
    $("#id_of_the_search_box_button").click(function (any_function_variable_name) { 
    $.ajax({ 
     type: 'GET', 
     url: '/url_of_the_related_server_side', 
     dataType: 'json' 
     }) 
      .done(function(data){ 
       console.log(data); 
       alert(JSON.stringify(data)); 

       data.forEach(function (any_function_variable_name) { 

       if(any_function_variable_name.search_box_ID == any_function_variable_name.name_in_the_JSON_file_for_one_of_the_searched_ID){ 

        $userElement = $("<li>").html("<strong>ID: </strong>" + any_function_variable_name.id); //id is defined in JSON and I was able to use in another part of the jquery 
        $userBlock = $("<ul>") 
         .append(
          $("<li>").html("<strong>Name: </strong>" + any_function_variable_name.name) //name of the user 
         ) 
         .append(
          $userElement 
         ) 
         .append(
          $("<li>").html("<strong>User User Name: </strong>" + any_function_variable_name.userName) 
         ); 
                    $any_function_variable_nameBlock.insertAfter("#search"); 
      } 
      }); 
    });})}) 

注意:我不知道是否可以右括号括起来。

在此先感谢!

+0

你能提供你的json文件的结构吗?样本数据将帮助... –

+0

[{... “ID”:37595960858, “in_reply_to_screen_name”:空, “用户”:{ \t “ID”:2384451, \t “ID_STR”: “238678” , \t “名”: “我多加”, \t “SCREEN_NAME”: “IDoga”, ... “ID”:65739068412, “in_reply_to_screen_name”:空, “用户”:{ \t “ID”:2878009, \t “ID_STR”: “235678”, \t “名”: “乔恩·多伊”, \t“USER_NAME”:“JD”, ... }] 用户在搜索框中应该匹配与一个不是在用户写入的ID。 –

+0

PS:我不使用表达 –

回答

0

我猜你正在寻找的东西一样,如下图所示...

而不是调用Ajax,我用下面的静态数据写...

HTML

<input id="searchBox" type="text" /> 
<button id="id_of_the_search_box_button"> 
Search 
</button> 

<ul> 

</ul> 

JS

var data = [ 
    { 
    "id": 37595960858, 
    "in_reply_to_screen_name": null, 
    "user": { 
     "id": 2384451, 
     "id_str": "238678", 
     "name": "Doga I", 
     "screen_name": "IDoga" 
    } 
    }, 
    { 
    "id": 65739068412, 
    "in_reply_to_screen_name": null, 
    "user": { 
     "id": 2878009, 
     "id_str": "235678", 
     "name": "Jon Doe", 
     "user_name": "JD" 
    } 
    } 
]; 


$(document).ready(function(){ 
    $("#id_of_the_search_box_button").click(function (any_function_variable_name) { 

    var searchText = parseInt($('#searchBox').val()); 


    data.forEach(function (any_function_variable_name) { 

     if(any_function_variable_name.id === searchText){ 

     $("ul") 
      .append('<li> <strong>ID: </strong>' + any_function_variable_name.user.id) 
      .append('<li> <strong>User Name: </strong>' + any_function_variable_name.user.user_name) 
      .append('<li> <strong>Name: </strong>' + any_function_variable_name.user.name) 
      .append('<li> <strong>Screen Name: </strong>' + any_function_variable_name.user.screen_name); 

     } //End if 

    }); //End forEach 

    }); 
}); 

使你这样的Ajax调用...

$(document).ready(function(){ 
    $("#id_of_the_search_box_button").click(function (any_function_variable_name) { 
    $.ajax({ 
     type: 'GET', 
     url: '/url_of_the_related_server_side', 
     dataType: 'json' 
    }) 
    .done(function(data){ 


     var searchText = parseInt($('#searchBox').val()); 


     data.forEach(function (any_function_variable_name) { 

     if(any_function_variable_name.id === searchText){ 

      $("ul") 
      .append('<li> <strong>ID: </strong>' + any_function_variable_name.user.id) 
      .append('<li> <strong>User Name: </strong>' + any_function_variable_name.user.user_name) 
      .append('<li> <strong>Name: </strong>' + any_function_variable_name.user.name) 
      .append('<li> <strong>Screen Name: </strong>' + any_function_variable_name.user.screen_name); 

     } //End if 

     }); //End forEach 



    }); 
    }); 
}); 

以下是小提琴手

https://jsfiddle.net/rrtbz4bo/7/

输入搜索框37595960858和点击搜索。

UPDATE:调用/发现/ ID ID = ... API直接,如果它返回象

{ 
    "id": 37595960858, 
    "in_reply_to_screen_name": null, 
    "user": { 
     "id": 2384451, 
     "id_str": "238678", 
     "name": "Doga I", 
     "screen_name": "IDoga" 
    } 
    } 

然后下面应该工作数据。

$(document).ready(function(){ 
    $("#id_of_the_search_box_button").click(function (any_function_variable_name) { 
    $.ajax({ 
     type: 'GET', 
     //Or whatever your URL structure is 
     url: 'http://127.0.0.1:5230/find/id?Id=' + $('#searchBox').val(), 
     dataType: 'json' 
    }) 
    .done(function(data){ 
     $("ul") 
     .append('<li> <strong>ID: </strong>' + data.user.id) 
     .append('<li> <strong>User Name: </strong>' + data.user.user_name) 
     .append('<li> <strong>Name: </strong>' + data.user.name) 
     .append('<li> <strong>Screen Name: </strong>' + data.user.screen_name); 
    }); 
    }); 
}); 

如果这不起作用,张贴一个提琴手,我会尽量让它工作。

希望这有助于...

+0

它没有工作,我认为这个问题比我想象的要大。感谢您的尝试。 如果你不介意,你可以写一个通用结构,因为当我使用127.0.0.1:5230/find/id ?,并且写入写入ID时,我正在终端/控制台上看到正确的答案(我有一个console.log())。问题是,我的jQuery Ajax应该看到搜索框的值与JSON中的值进行比较,如果匹配,他们需要返回该人的信息。 再次感谢 –

+0

然后删除forEach循环,并设置您的ajax url喜欢.... url:' http://127.0.0.1:5230/find/id?Id='+ $('#searchBox' ).val()Ie直接用id调用api。 –

+0

如果您需要,您也可以直接使用http://api.jquery.com/jquery.getjson/而不是$ .post –