Найдите искомое значение в Rest API и используйте его для запроса - PullRequest
0 голосов
/ 05 марта 2019

Я хотел бы найти значение в API отдыха и сделать еще один запрос с возвращенным значением.

Поле простого поиска:

<div class="container">
  <h1>Wikipedia Search</h1>
  <input id="searchTerm" name="search" placeholder="Search..">
  <button id='search' type="button" class ="btn btn-primary">Submit</button>
</div>

Json выглядит следующим образом:

{
    "status": "success",
    "games": [
        {
            "id": "1",
            "name": "counter"
        },
        {
            "id": "2",
            "name": "dota"
        },
        {
            "id": "3",
            "name": "aoe2"
        },
        {
            "id": "4",
            "name": "civ5"
        }]
}

Моя цель состоит в том, чтобы, когда кто-то ищет, например, «counter», чтобы вернуть id 1 в качестве переменной, которую я мог бы использовать для другого отданного запроса на получение API.

Код JS,что я пытаюсь тренироваться:

$("#search").on("click", function() {
        var searchTerm = $("#searchTerm").val();
        var url = "https://www.website.com/api.php?action=games"; 
        $.ajax({
            url: url,
            type: 'GET',
            contentType: "application/json; charset=utf-8",
            async: false,
            dataType: "json",
          // plop data
            success: function(games, status, errors) {

                $("#output").html();
                for(var x in games){
            if(games[x].id && games[x].id.split(",").indexOf(id.toString())!=-1) return games[x].name;
            }
            return "Not Found";
            }});
          console.log(searchTerm)

    });

С возвращенным значением id я хотел бы сделать запрос get, как показано ниже: ex.var Id = * ReturnedId из поиска

var request = new XMLHttpRequest();
request.open('GET', 'https://website.com/api/player.php?aid='Id'', true);
request.onload = function () {


  var data = JSON.parse(this.response);
request.onreadystatechange = function() {
  if (this.readyState === 4) {
    if (this.status >= 200 && this.status < 400) {
      // Success!
      var data = JSON.parse(this.responseText);
    } else {
      // Error :(
    }
  }
};
...