Salve a tutti, ho un problema che non riesco a risolvere.
In pratica ho un array
il file json che elaboro ha questa struttura:
[{"a":"valoreA1","b":"valoreB1","c":[{"cognome":"Rossi","nome":"Mario"}]},{"a":"valoreA2","b":"valoreB2","c":[{"cognome":"Verdi","nome":"Franco"}]}]
Sviluppato per una migliore lettura diventa:
La funzione Stampa() sopra descritta a me sembra funzionare correttamente, nel senso che se alla fine di ogni ciclo faccio un allert(Tabella) i dati mi tornano corretti.
Il problema mi si verifica quando vado ad processare l'array Tabella[] come per esempio:
Mi aspetto un output del tipo:
Primo Allert:
Tabella[0][0]= valoreA1
Tabella[0][1]= valoreB1
Tabella[0][2]= Rossi, Mario
Tabella[0][2][0]= Rossi, Mario
Tabella[0][2][1]= undefined
Secondo Allert:
Tabella[1][0]= valoreA2
Tabella[1][1]= valoreB2
Tabella[1][2]= Verdi, Franco, Rosa, Beppe
Tabella[1][2][0]= Verdi, Franco
Tabella[1][2][1]= Rosa, Beppe
Invece il primo Alert esce cosi:
Tabella[0][0]= valoreA1
Tabella[0][1]= valoreB1
Tabella[0][2]= Rossi, Mario
Tabella[0][2][0]= Rossi, Mario
Tabella[0][2][1]= Rosa, Beppe
Perchè mi ritrovo l'elemento inserito in Tabella[1][2] in Tabella[0][2]?
Il mio sospetto è nell'istruzione Tabella.push(elenco_nomi) come se non inserisse i valori dell'Array elenco_nomi, ma un puntatore. E' possibile?
In pratica ho un array
Codice:
var Tabella = new Array();
var elenco_nomi = new Array();
function Stampa(){
$.get("result.php",{ utente: "gm"},
function(dati) {
for(i=0;i<dati.length; i++){
Tabella[i] = new Array(dati[i].a, dati[i].b);
for(j=0;j<dati[i].c.length; j++){
elenco_nomi [j]= new Array(dati[i].c[j].cognome, dati[i].c[j].nome);
}
Tabella[i].push(elenco_nomi);
}
},"json");
}
il file json che elaboro ha questa struttura:
[{"a":"valoreA1","b":"valoreB1","c":[{"cognome":"Rossi","nome":"Mario"}]},{"a":"valoreA2","b":"valoreB2","c":[{"cognome":"Verdi","nome":"Franco"}]}]
Sviluppato per una migliore lettura diventa:
Codice:
dati[]=[
{"a":"valoreA1"
"b":"valoreB1"
"c": Array[{ "cognome":"Rossi",
"nome":"Mario"}]
},
{ "a":"valoreA2"
"b":"valoreB2"
"c":Array[{ "cognome":"Verdi",
"nome":"Franco"},
{ "cognome":"Rosa",
"nome":"Bebbe"}]
}
]
La funzione Stampa() sopra descritta a me sembra funzionare correttamente, nel senso che se alla fine di ogni ciclo faccio un allert(Tabella) i dati mi tornano corretti.
Il problema mi si verifica quando vado ad processare l'array Tabella[] come per esempio:
Codice:
function Control()
{
var boxtext1;
var i=0;
boxtext1='Tabella['+i+'][0]= '+Tabella[i][0]+ '\n' +
'Tabella['+i+'][1]= '+Tabella[i][1]+ '\n' +
'Tabella['+i+'][2]= '+Tabella[i][2]+ '\n' +
' Tabella['+i+'][2][0]= '+Tabella[i][2][0]+ '\n' +
' Tabella['+i+'][2][1]= '+Tabella[i][2][1];
alert(boxtext1);
i= i+1;
var boxtext2;
boxtext2='Tabella['+i+'][0]= '+Tabella[i][0]+ '\n' +
'Tabella['+i+'][1]= '+Tabella[i][1]+ '\n' +
'Tabella['+i+'][2]= '+Tabella[i][2]+ '\n' +
' Tabella['+i+'][2][0]= '+Tabella[i][2][0]+ '\n' +
' Tabella['+i+'][2][1]= '+Tabella[i][2][1];
alert(boxtext2);
}
Mi aspetto un output del tipo:
Primo Allert:
Tabella[0][0]= valoreA1
Tabella[0][1]= valoreB1
Tabella[0][2]= Rossi, Mario
Tabella[0][2][0]= Rossi, Mario
Tabella[0][2][1]= undefined
Secondo Allert:
Tabella[1][0]= valoreA2
Tabella[1][1]= valoreB2
Tabella[1][2]= Verdi, Franco, Rosa, Beppe
Tabella[1][2][0]= Verdi, Franco
Tabella[1][2][1]= Rosa, Beppe
Invece il primo Alert esce cosi:
Tabella[0][0]= valoreA1
Tabella[0][1]= valoreB1
Tabella[0][2]= Rossi, Mario
Tabella[0][2][0]= Rossi, Mario
Tabella[0][2][1]= Rosa, Beppe
Perchè mi ritrovo l'elemento inserito in Tabella[1][2] in Tabella[0][2]?
Il mio sospetto è nell'istruzione Tabella.push(elenco_nomi) come se non inserisse i valori dell'Array elenco_nomi, ma un puntatore. E' possibile?