2014-07-12 108 views
0

使用parse.com和JavaScript。如何在html選項框中顯示查詢結果?

這個查詢返回我的結果是否正確,我知道想通過html頁面上的選項框做出這些結果。我以爲我可以通過「朋友」到第二個代碼塊來實現這一目標,但它不起作用。在使用(2)代碼塊之前,是否需要先保存結果?

1 .......


$(document).ready(function() { 
var select = document.getElementById("selectNumber"); 
var options = (friends); 
for(var i = 0; i < options.length; i++) { 
    var opt = options[i]; 
    var el = document.createElement("option"); 
    el.textContent = opt; 
    el.value = opt; 
    select.appendChild(el); 
} 
    }); 

3 HTML

<select id="selectNumber"> 
    <option>Choose a number</option> 
</select> 
+1

成功回電後,您應該在*好友*上進行操作,而不是在準備好文檔時進行操作。 –

+0

@Mldun克里希納THANKs,如果你作出答案,我會接受它。 – Dano007

+0

謝謝@ Dano007 –

回答

2

live Demo,試試這個

在第1部分

friends.push({ 
      "username" : "+results[i].get('toUser').get('username')+", 
      "userId" : "+results[i].get('toUser').id+" 

    }); 

在第2部分

var select = document.getElementById("selectNumber"); 
    $.each(friends[0],function(i,v){ 

     var opt = v; 
     var el = document.createElement("option"); 
     el.textContent = opt; 
     el.value = opt; 
     select.appendChild(el); 
    }) 

問題是friends.push({ Json Object });

var option= (friends)你是stroe中的數組對象,但你需要迭代它並獲取json值。

+0

完美,根據回覆質量給出答案。 – Dano007

+0

@ Dano007謝謝... – hari

1

信息在數據重新操作由查詢的成功回調中的查詢轉向。在$(document).ready()時,數據將不可用:)

1

這裏的代碼是asynchrone,這意味着JS調用遠程服務器爲您的查詢並繼續執行,直到它得到響應。一旦它得到它,它會調用你的回調函數和結果。因此,您不能僅在查詢後使用結果,因爲您尚未得到響應。你必須確保你在之後使用它們你得到了迴應,這就是爲什麼你必須在回調中編寫你的代碼的原因(或者你將在回調中調用的另一個函數中)。

這裏是一個example

HTML:

<p id="results1"></p> 
<p id="results2"></p> 

JS:

var results = [], 
    query = JSON.stringify({foo: "bar"}); 

$.post('/echo/json/', {json: query}, function(data) { 
    results.push(data.foo); 
    $('#results2').text('in callback: ' + results.join('')); 
}); 
$('#results1').text('after async call: ' + results.join('')); 

如果你運行它,你應該看到剛過$.post通話,results仍是空的,因爲之前的調用是異步完成的。當執行回調時,results包含"bar"預期。

+0

謝謝,我標記了這一點,但其他答案稍微與parse.com相關。非常感謝 – Dano007