在Javascript中接收Json数组并输出结果

在Javascript中接收Json数组并输出结果

问题描述:

如果我不使用var productOj并输出响应。 innerHTML = this.response; 我会回应这个{“细节”:“这是细节”,“链接”:“/ link/here”},所以响应回来json,但我想访问个别细节和链接,并输出到别的地方。在Javascript中接收Json数组并输出结果

function getProduct(productName) { 
    if (productName == "0") { 
     document.getElementById("instr_text").innerHTML = "Please Select A Product"; 
     return; 
    } else { 
     // document.getElementById("orderSummary").innerHTML = str; 

     xmlhttp = new XMLHttpRequest(); 
     xmlhttp.onreadystatechange = function() { 
      if (this.readyState == 4 && this.status == 200) { 
       //document.getElementById("orderSummary").innerHTML = "success"; 
       var productObj = JSON.parse(this.responseText); 
       document.getElementById("detail").innerHTML = productObj.detail; 


      } else { 
       //document.getElementById("orderSummary").innerHTML = "failure" + this.readyState + this.status; 
      } 
     }; 
     xmlhttp.open("GET", "getinfo.php?productName=" + productName,true); 
     xmlhttp.send(); 
    } 
} 
+0

JQuery是一个选项吗?我认为你会发现一个JQuery实现更简单。 – HumbleWebDev

+0

我知道,但由于某种原因,我不喜欢jquery – JaP

它可能看起来像这样。

var productObj = JSON.parse(this.responseText); 
var productHtml = ""; 
productObj.forEach(product => productHtml += "<p>" + product.detail + "</p>") 
document.getElementById("detail").innerHTML = productHtml; 

你在做什么,通过每个元素在你的productObj阵列会和创造,你要寻找的HTML。一旦你有了你想要的html的blob,你可以将它附加到你选择的div中。您也可以重复/修改此过程以访问link

+0

好主意。我试了一下,我没有工作,但我认为我错误地实施了它。我会试着找出它为什么没有输出任何东西。 – JaP