2017-05-04 98 views
0

所以我目前正在研究這個網站的應用程序,並試圖說明在我的大學裏有多少臺電腦可以使用大學網站和AJAX的JSON。我無法弄清楚,但它顯示了第一個房間的所有MAC,然後它的說法對其他人來說是未定義的,它的所有代碼塊,所以我不能看到它出錯的地方,任何建議都會很棒。阿賈克斯顯示爲undefined

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的個人電腦改變和除互助未定義的。 enter image description here

它適用於第一個,但不適用於其他MAC,發生了什麼?任何幫助將非常感謝謝謝你們。

+0

value.availMacs是不正確的,請檢查JSON響應 – madalinivascu

+0

檢查數據和項目使用的console.log第一,還提供數據JSON這裏 –

回答

-2

要顯示JSON字符串,如您需使用JSON.stringify()功能:

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

我嘗試過了,並沒有工作,但我很欣賞的反饋。 :) – Crogan

+0

成功函數:'var results = JSON.parse(data); var lengthOfData = results.length; ''然後你可以迭代使用簡單的** for循環(例如,我作爲迭代器),然後獲取值爲'var displayNmae = JSON.stringify(results [i] [「displayNamekey」]);'這裏我正在考慮你的'data'是一個JSON數組。 –

0

首先在數據類型,程序投入,而不是 'JSON' JSONP「。而且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); 
    } 
}); 

用這種結構,你會看到什麼問題。使用後,而不是得到,它更好。

+0

我不能使用json,我需要jsonp,否則它將被CORS策略阻止。 – Crogan

+0

我不確定,在jsonp上,你能串起來嗎?測試它。如果可以的話,使用相同的方式來測試問題。因爲現在,你必須針對你的問題。最糟糕的是,正在嘗試很多事情。成功刪除所有內容,只需在「無效」的情況下使用類似「成功」的提示來測試您的答案。添加錯誤部分並將警告「錯誤」。替換php的部分,就像我告訴過你的答案一樣,測試你的答案。這樣你就可以肯定。嘗試另一次測試後。其他的可能性,嘗試在本地主機上的純json和轉換爲jsonp後。就我看來,jsonp非常相似,不同於填充。祝你好運 – Hexxefir