Sì
id_numbers.completi["1"].forEach(element => lab(element, upload));
l'avevo provato e funziona, ma non è questo ciò in cui non riesco
io non lo so a prescindere cosa ci può essere al posto di "1"
per quello non riesco a ciclare id_numbers.completi
perché ciclando id_numbers.completi
avrei un elenco di numeri e da quell'elenco potrei fare
id_numbers.completi[X].forEach(element => lab(element, upload));
anzi, dovrei ciclare prima l'intero array (solo che anche id_numbers non si fa ciclare)
e mi usciranno 2 elementi (completi e incompleti)
poi ciclare completi e mi uscirà 1 elemento ("1")
e questo elemento ciclarlo per ottenere i 3 valori
stessa cosa per incompleti
so che id_numbers avrà
id_numbers.completi
id_numbers.incompleti
ma non so che ["X"] avrà id_numbers.completi
è X che non riesco a ottenere
sto cercando di capire attraverso questa pagina se è possibile farlo
https://www.w3schools.com/js/js_json_arrays.as
o forse questa è più appropriata
https://www.w3schools.com/js/js_json_objects.as
solo che propone dei for invece che dei foreach annidati, ma forse è quasi uguale...
l'importante per me è ottenere cosa c'è al posto di ["1"], perché può essere qualsiasi altro numero
l'array da dove proviene è questo
$sql = mysqli_query($mysqli_connection, "SELECT gruppo, nome_foto, link, if(link LIKE 'http%', 1, 0) as completi, if(link LIKE 'Error%', 1, 0) as incompleti FROM foto WHERE categoria = '$CATEGORIA' AND cartella_locale = '$DATA' AND link IS NOT NULL ORDER BY link DESC");
while($riga = mysqli_fetch_assoc($sql)){
if($riga['completi']){
$data['completi'][$riga['gruppo']][] = $riga['nome_foto']."__".$riga['link'];
}
if($riga['incompleti']){
$data['incompleti'][$riga['gruppo']][] = $riga['nome_foto']."__".$riga['link'];
if(array_key_exists($riga['gruppo'], $data['completi'])){
unset($data['completi'][$riga['gruppo']]);
}
}
}
echo json_encode($data);
che mi produce questo
Array
(
[completi] => Array
(
[1] => Array
(
[0] => DSC_8857.JPG__http
[1] => DSC_8858.JPG__http
[2] => DSC_8859.JPG__http
)
)
[incompleti] => Array
(
[2] => Array
(
[0] => DSC_8861.JPG__Error
[1] => DSC_8862.JPG__Error
)
[4] => Array
(
[0] => DSC_8876.JPG__Error
)
)
)
e in javascript dovrei ciclare l'array completi e l'array incompleti, separatamente
quanti elementi ha completi?
ma completi.lenght non funziona perché è un oggetto
e allora come faccio a ottenere il nome del oggetto e cioè ["1"]?
in teoria dovrei fare questo ma ovviamente non è così
for(var i = 0; i < id_numbers.completi.length; i++) {
var gruppo = id_numbers.completi[i];
for(var x = 0; x < id_numbers.completi[i].length; x++){
alert(id_numbers.completi[i][x])
}
}