2012-04-29 29 views
0

我從200個ID的PHP文件返回一個JSON數組。 (身份證號)。 我想只有18個ID的ID,以便我只發送18個ID到一個新的PHP文件,然後2秒後,我想將JSON的下一個ID ID發送到新的PHP文件,直到JSON數組中沒有更多的ID要發送。JSON:我如何製作數組到幾個數組?

$.get('get.php?randomize=1', function(data) { 

     var json = data; 

     $("#wallpaper").load('get_random.php?json_18=' + encodeURI(data), hideLoader());  

    }); 

正如您所見,我已將JSON存儲在名爲json的變量中。但我不知道如何爲每個ID分配它。我已經閱讀了jQuery中的每個函數,但我不太明白。我希望有人能幫助我。

+0

而是像分裂的,爲什麼不使用標準的膠印/ numResuts方法? – bvulaj

+0

從來沒有聽說過。它是什麼?有什麼好的地方可以開始閱讀嗎? – Kaizokupuffball

+0

你會改變你的可調用類似'get.php?randomize = 1&offset = 0&numResults = 18'。您的抵消將每次增加,返回下一個18,依此類推。 – bvulaj

回答

2

http://jsfiddle.net/2bZHP/4/

var data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
var spliceAt= 5; 
var trigger = setTimeout(function() { 
    var toSend; 
    if(data.length>spliceAt) 
    { 
     var left= data.slice(0,spliceAt); 
     var right = data.slice(spliceAt); 
     data = right; 
     toSend = left; 
     setTimeout(arguments.callee, 2000); 
    } 
    else 
    { 
     toSend = data; 
    } 
    //$("#wallpaper").load('get_random.php?json_18=' + encodeURI(toSend), hideLoader()); 
    alert(toSend); 
}, 2000);​ 
+0

僅供參考:http://jsfiddle.net/2bZHP/ – bvulaj

1
$.get('get.php?randomize=1', function(data) { 

    var json = data; 
    for(i=0;i<n;i++) 
    { 
     setTimeout("$('#wallpaper').load('get_random.php?json_18=' + encodeURI(json.slice(i*18,(i*18)+18)), hideLoader());", i*20); 
    }  

}); 

&檢查出來,也許有些誤差的setTimeout的語法,沒有檢查。

1

jQuery documentation

$.each([52, 97], function(index, value) { 
    alert(index + ': ' + value); 
}); 

將顯示:

0: 52 
1: 97 

所以,函數迭代的每個元素,並適用於每一個的函數,傳遞項目索引陣列和在項目本身。

可以以這種方式使用slice()函數:

var taken = 0, step = 18; 
var subset18; 
while (taken < json.length) { 
    subset18 = json.slice(taken, taken + step); 
    taken += step; 
    // do something with subset18 
} 

http://www.w3schools.com/jsref/jsref_slice_array.asp

相關問題