更新
動作する私のコード。ページが読み込まれたとき
product= [[],[]];
次に、ajax呼び出しの後に実行されるコード:
$('#contextreload ul').each(function(i, ul) {
product.Push([]);
});
$('#contextreload ul').each(function(i, ul) {
allline=i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html(); product[i][lk]=lilk;
// your code goes here
});
// your code goes here
});
Eval();を使用するにはこれに対するajax応答で、phpファイルにいくつかの変更がありますか? / endupdate
product [0] = [1,2,3,4];
product [1] = [a、b、x、z];
。
。
product [10] = [extra、extra、extra、extra];
ページをロードすると、これが実行されます:product= [[],[],[],[],[],[],[],[],[],[]];
しかし、これを宣言すると、ajaxを呼び出すときに 押す この配列(10行)にのみデータを追加します。11行(product[10][0]
およびproduct[10][1]
)、余分なデータは追加されません。 ajax呼び出しの後、追加のデータが必要です:product= [[],[],[],[],[],[],[],[],[],[],**[11]**];
この関数は、phpファイルからajaxデータを読み込んだ後に、データを配列に入れたいからです。
$('#contextreload ul').each(function(i, ul) {
<strike> var product = $(ul).html(); </strike>
allline = i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html();
product[i][lk]=lilk;
alert(lilk+lk);
// your code goes here
});
// your code goes here
});
}
Ajax呼び出しの成功時に、関数 Push()
を使用します
product.Push([]);
これにより、product
の最後のインデックスに配列が追加されます。そのように、インデックス10
が作成され、追加のデータがあります。
動的な行数を追加する場合は、次のコードを使用します。
var number_of_new_row = 11; // 11 for example, you can use any number >= 0
for(; number_of_new_row--;)
product.Push([]);
別の方法
Ajaxリターンで、配列product
の新しい長さをグローバル変数に保存します。ループの前に使用して、配列をリセットし、新しい長さで初期化します。
var lengthArray = 10; // update the value in the callback of your ajax call
そしてあなたのループ:
var product = [];
for(; lengthArray--;)
product.Push([]);
$('#contextreload ul').each(function(i, ul) {
//<strike> var product = $(ul).html(); </strike>
allline = i;
$('#reloadajax'+i+' li').each(function(lk, li) {
var lilk = $(li).html();
product[i][lk]=lilk;
alert(lilk+lk);
// your code goes here
});
// your code goes here
});
注:コードのこの行は、配列ではなく文字列を生成します。
var product = $(ul).html(); //returns string not an array
必要なのは次のようなものです
var product_arr = {}; // an object or
var product_arr = []; // an array
JavaScriptで空の配列を宣言するために使用される次のコード
var product_arr = new Array(); //declaring empty array
console.log(product_arr);