2017-02-17 7 views
0

DBからデータを取得するために使用しているAJAX呼び出しがあります。AJAXコールからデータを取得する方法を理解する

$.ajax({ 
    url: URL + '/main/noc/html_forms/query.cfm', 
    type: 'GET', 
    dataType: 'json', 
    data: { 
     dataset: 'Users' 
    }, 
    async: false, 
    timeout: 5000, 
    cache: false, 
    success: function(data) {    
     var result = data.result; 
     console.log(result); 
    } 
}); 

このデータをDOM ID要素に印刷できないことを除いて、データが正常に取得されたことがコンソールからわかります。私はdocument.write(result);を行う場合であっても、画面上に表示されるテキストは、私はちょうどそれを得ることができない、私はそれを見ることができるので、データが正常に取得され、再び

[object Object],[object Object],[object Object]

です。

enter image description here

私はこれはおそらく愚かな質問ですが知っている、それは私が101クラスで学ぶことができるものになってしまうだろう、誰かがここで何が起こっているのかを説明することができ、どのように私は私のデータを取得できますか?

+0

* "このデータをDOM ID要素に印刷できないことを除いて" *あなたはオブジェクトの配列を持っています。アウトプットは何を期待していますか?最後に、配列を文字列またはDOM要素に変換する必要があります。それを行う方法は、データをどのように表示するかによって異なります。 JavaScript/DOMはデータの表示方法を知らないので、それを伝えなければなりません。データへのアクセスは簡単です: 'data [0] .user_name'は配列の最初のオブジェクトの' user_name'にアクセスします。潜在的には、[アクセス/プロセス(ネストされた)オブジェクト、配列、またはJSONの複製](0120-328-951) –

+0

'async:false、' + 'timeout:5000、'通話が完了するまでに最大5秒かかることがあります。フレンドリーではありません –

答えて

1

投稿されたスクリーンショットでは、AJAXコールの結果がArrayという形式で表示されているようです。だから、そのデータにアクセスするためには、おそらく...のように、このことができますdocument.write(result[0].user_name)または

$.ajax({ 
    url: URL + '/main/noc/html_forms/query.cfm', 
    type: 'GET', 
    dataType: 'json', 
    data: { 
     dataset: 'Users' 
    }, 
    async: true, 
    cache: false, 
    success: function(data) { 
     var result = data.result; 
     for (var i = 0; i < result.length; i++) { 
      document.write(result[i].user_name); 
     } 
     console.log(result); 
    } 
}); 

希望を何かをする必要があります。

1

あなたのコードは大丈夫ですが、成功した場合には、オブジェクトの配列を返すされ、その後、あなたは、サーバーからのオブジェクトの配列を取得しているこの

$.ajax({ 
url: URL + '/main/noc/html_forms/query.cfm', 
type: 'GET', 
dataType: 'json', 
contentType:'application/json;charset=utf-8', 
data: { 
    dataset: 'Users' 
}, 
async: false, 
timeout: 5000, 
cache: false, 
success: function(data) {    
    alert(data[0].user_name); 
    console.log(result); 
} 
}); 
+0

'Your Code Is Fine' - 非推奨の同期リクエストにもかかわらず:もちろん:p –

0
success: function(data) {  
      $.each(data,function(index,obj) 
      { 
       console.log('object ' + index); 
       $.each(obj,function(key,value) 
       { 
        console.log(key + ':' + value); 
       });  
      }); 
    } 

のようにコードを変更する必要があります。それを直接印刷することはできません。値を出力するには、この配列を反復処理する必要があります。このためには、$.each jquery関数を使用して最初にオブジェクトの配列を反復処理し、再び各オブジェクトのすべてのキーと値のペアを反復処理します。 $.each関数here