Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JS Ajax通过单击用户id获取用户的详细信息?_Javascript_Json_Ajax - Fatal编程技术网

Javascript 如何使用JS Ajax通过单击用户id获取用户的详细信息?

Javascript 如何使用JS Ajax通过单击用户id获取用户的详细信息?,javascript,json,ajax,Javascript,Json,Ajax,如何通过单击用户id获取用户的详细信息?我从JSON API获取了数据。但我知道我需要更多的功能,当用户单击该链接时,我会将id作为链接,只有该id的数据才会显示在JSON API服务器上。我想知道使用JS AJAX如何实现。请帮助 这是我的密码 <html> <body> <table class = "src"> <tr><th>Name</th><th>id</t

如何通过单击用户id获取用户的详细信息?我从JSON API获取了数据。但我知道我需要更多的功能,当用户单击该链接时,我会将id作为链接,只有该id的数据才会显示在JSON API服务器上。我想知道使用JS AJAX如何实现。请帮助

这是我的密码


<html>

<body>


      <table class = "src">
         <tr><th>Name</th><th>id</th></tr>
         <tr><td><div id = "Name"></div></td>
         <td><div id = "Id"></div></td></tr>
      </table>



   </body>


<script type="text/javascript">
   var xmlhttp = new XMLHttpRequest();
var url = "https://jsonplaceholder.typicode.com/users";

   xmlhttp.onreadystatechange = function() {

               if (this.readyState == 4 && this.status == 200)  {
                  // Javascript function JSON.parse to parse JSON data
                  var jsonObj = JSON.parse(this.responseText);

                  // jsonObj variable now contains the data structure and can
                  // be accessed as jsonObj.name and jsonObj.country.
                    var name="";
                    var id="";

                   for(var i = 0; i < 10; i++) {
          name += '<a href="">' + jsonObj[i].name + '</a> <br>';
          id+=jsonObj[i].id + '<br>' ;

                  }
        document.getElementById("Name").innerHTML = name;
        document.getElementById("Id").innerHTML = id;
               }
               }



             xmlhttp.open("GET", url, true);
            xmlhttp.send();
</script>
</html>

名字
var xmlhttp=new XMLHttpRequest();
变量url=”https://jsonplaceholder.typicode.com/users";
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
//Javascript函数JSON.parse解析JSON数据
var jsonObj=JSON.parse(this.responseText);
//jsonObj变量现在包含数据结构并可以
//可作为jsonObj.name和jsonObj.country访问。
var name=“”;
var id=“”;
对于(变量i=0;i<10;i++){
名称+='
'; id+=jsonObj[i].id+'
'; } document.getElementById(“名称”).innerHTML=Name; document.getElementById(“Id”).innerHTML=Id; } } open(“GET”,url,true); xmlhttp.send();
id
div为目标,并向其添加click listener。内部处理程序使用
e.target.innerText

  document.querySelectorAll("#tab div.userid").forEach(elem => elem.addEventListener("click", function(e) {
        let xmlhttp = new XMLHttpRequest();
        let url = `https://jsonplaceholder.typicode.com/users/${ e.target.innerText}`;
        xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
                user = JSON.parse(this.responseText);
                //handle your user data here      
        })
       xmlhttp.open("GET", url, true);
       xmlhttp.send();
    }
下面的示例在数组中查找用户并显示其数据。此处不进行请求,因为数组中已有可用数据

var用户=[];
函数getUsers(){
设xmlhttp=newxmlhttprequest();
让url=”https://jsonplaceholder.typicode.com/users";
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
users=JSON.parse(this.responseText);
let tableString=`Name id`
users.forEach(obj=>{
表字符串+=`
${obj.name}
${obj.id}
`
});
document.getElementById(“tab”).innerHTML=tableString;
document.queryselectoral(“#tab div.userid”).forEach(elem=>elem.addEventListener(“单击”),函数(e){
getDataOfUser(e.target.innerText)
}))
}
}
open(“GET”,url,true);
xmlhttp.send();
}
函数getDataOfUser(id){
让user=users.find(user=>user.id==id);
document.querySelector(“.info user”).innerHTML=`用户信息:
名称:${user.Name}
电子邮件:${user.Email}
电话:${user.Phone}
网站:${user.Website}
` } getUsers()
#选项卡td{
边框:1px纯黑
}
.userid{
光标:指针;
}
点击id获取用户数据

您想再次请求特定用户id的数据,还是根据已经获取的用户数据中的id显示用户?是的,我想通过单击显示的id再次请求特定用户id的数据。为什么?你已经在请求中获取了数据,对吗?我还想显示用户的地址、地理位置和公司。user.address.city,user.company likewiseHi bro你能通过发送另一个http请求来帮助我获取用户信息吗?