mettre à jour
Mon code qui fonctionne. Quand la page est chargée
product= [[],[]];
puis le code exécuté après l'appel 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
});
Pour utiliser eval (); en réponse ajax pour cela, avec quelques modifications dans le fichier php? /endupdate
produit [0] = [1,2,3,4];
produit [1] = [a, b, x, z];
.
.
produit [10] = [extra, extra, extra, extra];
Lorsque je charge la page, celle-ci est exécutée: product= [[],[],[],[],[],[],[],[],[],[]];
Mais si je déclare cela, quand j'appelle ajax je peux Pousser ajouter des données uniquement à ce tableau (10 lignes) Si j'ai 11 lignes (product[10][0]
et product[10][1]
), les données supplémentaires ne seront pas ajoutées . Après un appel ajax, j'ai besoin des données supplémentaires : product= [[],[],[],[],[],[],[],[],[],[],**[11]**];
Cette fonction est parce que je veux mettre des données dans un tableau après avoir chargé des données ajax depuis un fichier php.
$('#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
});
}
Dans le succès de votre appel ajax, utilisez la fonction Push()
product.Push([]);
Cela ajoute un tableau au dernier index de product
. Ainsi, l'index 10
est créé et vous avez des données supplémentaires.
Si vous souhaitez ajouter un nombre dynamique de lignes, utilisez ce code:
var number_of_new_row = 11; // 11 for example, you can use any number >= 0
for(; number_of_new_row--;)
product.Push([]);
Autrement
Dans votre retour ajax, enregistrez la nouvelle longueur de votre tableau product
dans une variable globale . Et utilisez-la avant votre boucle pour réinitialiser votre tableau et l'initialiser avec la nouvelle longueur.
var lengthArray = 10; // update the value in the callback of your ajax call
Et ta boucle:
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
});
Remarque: cette ligne de votre code produit une chaîne, pas un tableau.
var product = $(ul).html(); //returns string not an array
vous avez besoin de quelque chose comme
var product_arr = {}; // an object or
var product_arr = []; // an array
Le code suivant utilisé pour déclarer un tableau vide en javascript
var product_arr = new Array(); //declaring empty array
console.log(product_arr);