Non riesco ad accedere ai valori con JSON.parse

di il
5 risposte

Non riesco ad accedere ai valori con JSON.parse

Ciao a tutti e buongiorno
Riesco ad ottenere correttamente il parse su php con json_encode($RES) e inviarlo al javascript ma non riesco ad accedere agli elementi se non in maniera disordinata e nemmeno in ordine
L'array che viene da php è questo

Array
(
    [224693315] => Array
        (
            [0] => a
            [1] => b
            [2] => c
            [3] => d
            [4] => e
        )
)

        var RES= JSON.parse(foto.responseText, function (key, value){
            alert(key[].textContent);
        });
Non riesco ad accedere a 224693315 e agli elementi di 224693315
devo fare 2 volte il foreach key => value?
Mi sto cervellando, quando si tratta di array multidimensionali non c'è verso di trovare esempi e guide apposite.

Ringrazio chi mi salverà la salute mentale

5 Risposte

  • Re: Non riesco ad accedere ai valori con JSON.parse

    melixo ha scritto:


    L'array che viene da php è questo [...]
    Come viene convertito quell'array in JSON?

    Non è detto che qualsiasi struttura dati sia convertibile direttamente in JSON, a meno di non aggiungere chiavi e nomi nei punti opportuni.
  • Re: Non riesco ad accedere ai valori con JSON.parse

    In che senso come viene convertito?
    nella pagina php io ho questo
            echo json_encode($RES);
            echo "<pre>"; print_r($RES);
    
    ovviamente tolgo il print_r poi. Il risultato è quello che ho scritto su
    Array
    (
        [224693315] => Array
            (
                [0] => a
                [1] => b
                [2] => c
                [3] => d
                [4] => e
            )
    )
    
    ho sempre fatto così, e mi funzionava sempre. Con questa struttura invece non riesco poi in javascript ad accedere agli elementi
  • Re: Non riesco ad accedere ai valori con JSON.parse

            
            while($row = mysqli_fetch_assoc($result)){
            if($row['Rif_Catalogo']!="-"){
                        $counter_foto = 0;
                $Numero_Ordine = $row['Numero_Ordine'];
                $ItemID = $row['Item'];
                $result2 = mysqli_query($mysqli_connection, "SELECT * FROM CATALOGO WHERE oggetto = '$Item'");
                while($row = mysqli_fetch_assoc($result2)){
                    $link_foto = $row['bestlink'];
                    $RES[$count][$Item][$counter_foto] = $link_foto;
                    $counter_foto++;
                }
            }
            $count++;
            }
                    echo json_encode($RES);
    
    
    funzionare funziona... il risultato è giusto, l'array arriva a js così come voglio però non riesco ad accedere agli elementi
  • Re: Non riesco ad accedere ai valori con JSON.parse

    Ciao,
    se per esempio il dato della chiamata di callback l'hai chiamato DATA, puoi accedere all'oggetto così DATA.oggetto[chiave], DATA.oggetto[0].

    Oppure ciclare...

    Ciao
  • Re: Non riesco ad accedere ai valori con JSON.parse

    melixo ha scritto:


    In che senso come viene convertito?
    nella pagina php io ho questo
            echo json_encode($RES);
            echo "<pre>"; print_r($RES);
    
    ovviamente tolgo il print_r poi. Il risultato è quello che ho scritto su
    Array
    (
        [224693315] => Array
            (
                [0] => a
                [1] => b
                [2] => c
                [3] => d
                [4] => e
            )
    )
    
    ho sempre fatto così, e mi funzionava sempre. Con questa struttura invece non riesco poi in javascript ad accedere agli elementi
    Il risultato che hai riportato qui sopra NON è un JSON valido, o comunque non è (spero) il pacchetto JSON che restituisci al client.
Devi accedere o registrarti per scrivere nel forum
5 risposte