2017-08-29 5 views
2

var productOjを使用しないと応答を出力します。 innerHTML = this.response; レスポンスが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

答えて

1

このような感じです。

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

関連する問題