2017-05-04 19 views
0

私は現在このWebアプリケーションで作業しています。大学のWebサイトとAJAXのJSONを使用して私の大学で利用できるPCの台数を表示しようとしています。私はそれを理解することはできませんが、最初の部屋のためのすべてのMACを表示し、その後、他の人のために定義されていないその言葉はすべて1ブロックのコードなので、どこに間違ったアドバイスがあるのか​​分かりません。Ajaxが定義されていないと表示されます

JS:

var container = $('div.container'); 
$('input#get').click(function(){ 
    $.ajax({ 
     type: 'GET', 
     url: '(mylink)', 
     dataType: 'jsonp', 
     success: function(data) { 
     $.each(data, function(index, item) { 
     $.each(item, function(key, value) { 
      container.append('<div class="pcsinside">' + value.displayName + '</div>' + 'PCs available:' + '&nbsp' + value.availPCs + '&nbsp' + 'out of' + '&nbsp' + value.numPCs + '<br/>' + 'Macs available:' + '&nbsp' + value.availMacs + '&nbsp' + 'out of' + '&nbsp' + value.numMacs + '<br/>'); 
      }); 

      }); 

     } 
    }); 
}) 

HTML:

<div class="container"> 
 
      <div id="form-area"> 
 
      <input id="get" type="submit" value="Press For PC Availability"> 
 
      </div> 
 
      <div class="pcsinside"> 
 
      </div> 
 
     </div>

これは、次のようになりますと、それは更新をしたときにPCのためのPCの変更とを除いてのMAC未定義のもの。 enter image description here

これは最初のもので動作しますが、他のMACでは動作しません。何が起こっていますか?どんな助けでも本当にありがとう。あなたが 'JSONP' の代わりの 'JSON' を置くのdataTypeで

container.append('<div>'+ JSON.stringify(value.displayName) +'</div>'); 
+0

value.availMacsが正しくない、jsonの応答を確認してください – madalinivascu

+0

最初にconsole.logを使用してデータと項目を確認し、ここにデータjsonを入力してください –

答えて

-2

。そしてS Jayeshは正しいです、あなたは答えを見るためにストリングスする必要があります。この例を見てください。

$.ajax({ 
    url: "blabla.php", 
    data: data, 
    type: 'POST', 
    contentType: "application/x-www-form-urlencoded", 
    dataType: 'json', 
    error: function(data){ 
     var err = JSON.stringify(data); 
alert(err); 
    }, 
    success: function(data){ 
     var succ = JSON.stringify(data); 
alert(succ); 
    } 
}); 

この構造を使用すると、問題が表示されます。 getの代わりにpostを使うと良いでしょう。

+0

私は試してみましたが、うまくいきませんでした。 :) – Crogan

+0

成功関数: 'var results = JSON.parse(data); var lengthOfData = results.length;それでは、単純な** for **ループを使って反復することができます(たとえば、イテレータとして)。次に、var displayNmae = JSON.stringify(results [i] ["displayNameKey"]);あなたの 'data'はJSON配列です。 –

0

まず:あなたはJSON.stringify()機能を使用する必要がある文字列としてJSONを表示するには

+0

私はjsonを使用できません、私はjsonpが必要です、またはCORSポリシーによってブロックされます。 – Crogan

+0

jsonpで、わかりません。文字列化できますか?試して。可能であれば、同じ方法で問題をテストしてください。今のところあなたの問題をターゲットにする必要があります。最悪の事は、物事をたくさん試しています。成功したものをすべて削除してください。文字列が機能しない場合は、「成功」のような警告で回答をテストしてください。エラー部分を追加し、アラート「エラー」を表示します。私はあなたの答えをテストするように言ったように、PHPの部分を置き換えて、ちょうど。そうすれば、あなたは確信します。もう一度試してみてください。他の可能性は、ローカルホスト上で純粋なjsonを試してから、jsonpに変換してください。私が読んでいるように、jsonpはパディングとは異なり、かなり似ています。がんばろう – Hexxefir

関連する問題