Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. from Jscrpt to PHP [JSON]
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • G
      gandalf User Attivo • ultima modifica di

      Sigh ancora nulla, vediamo se riassumendo meglio ne vengo fuori 🙂

      Il mio intento è di inviare da Javascript verso --> un file.php una stringa di tipo Json

      Un es. della mia stringa ricavata è: (output del comando 'console.log')

      {"libro":
      {"titolo":"XXX",
      "capitoli":[
      {"Dat":"31/8/2009","Com":"lascia un commento..."},
      {"Dat":"31/8/2009","Com":"lascia un commento..."}
      ]
      }}
      

      poi nel file.php ho queste due righe:

      <?php
      $obj=var_dump(json_decode($_POST['JS']));									 
      echo $obj->titolo;
      ?>
      

      dove sbaglio ? :mmm:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        mirkoagrati User Attivo • ultima modifica di

        Dunque, mi sa che stiamo facendo un po' di confusione lato server:

        questa istruzione non è usata per valorizzare variabili ma solo per mostrarne il contenuto:
        [php]
        var_dump(json_decode($json));
        [/php]Quindi prova così:
        [php]
        $obj = json_decode($json);
        echo $obj->titolo oppure $obj->{'titolo'}
        [/php]comunque prova a dare un'occhiata qui it2.php.net/json_decode.

        Ciao

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • G
          gandalf User Attivo • ultima modifica di

          Ok var_dump eliminato, cosa è cambiato ? Non mi torna più il fastidioso NULL ora mi ritorna il vuoto assoluto :mmm:

          Neanche il null .... ho provato sia con
          $obj->titolo sia con $obj->{'titolo'} niente :():

          thanks

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            mirkoagrati User Attivo • ultima modifica di

            Strano,
            non trovi niente neanche nei logs ?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • G
              gandalf User Attivo • ultima modifica di

              Si nei logs trovo la stringa sempre com'era .... :mmm:

              Bah a naso direi che c'è qualcosa che non và nel formato stringa durante l passaggio dal Javascript al PHP .... mmm...

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • M
                mirkoagrati User Attivo • ultima modifica di

                Uhmm noioso così!!!

                Sto leggendo un po' la documentazione, ho trovato questo:

                On one server I use (FreeBSD 6.3; PHP 5.2.6 as module in Apache 2.2.10), PHP was compiled with the '--disable-all' configuration option. Consequently, there exists a secondary configuration file -- /usr/local/php5/etc/extensions.ini -- in which the line

                ; extension=json.so

                must be uncommented (delete the semicolon) and Apache restarted for these functions to be available.
                Comunque,
                prova così:
                [php]
                $json= json_encode('{"titolo":"ciao", "autore":"umberto eco"}');
                $obj = json_decode($json);
                echo $obj->titolo oppure $obj->{'titolo'}
                [/php]Queste informazioni sono reperibili qui:

                1. it2.php.net/manual/en/json.installation.php;
                2. it2.php.net/manual/en/function.json-last-error.php;

                Ciao

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • G
                  gandalf User Attivo • ultima modifica di

                  prova così:

                  Codice PHP:
                  $json= json_encode('{"titolo":"ciao", "autore":"umberto eco"}');
                  $obj = json_decode($json);
                  echo $obj->titolo oppure $obj->{'titolo'}

                  Mi torna vuoto .... :(): come prima. Sai una cosa stò testando il tutto localmente (Php 5.2.9) perchè aruba ha ancora la 4.4.9 Json non esiste, quindi le modifiche eventuali al php.ini le testo in locale e poi devo pregare che siano settate bene sui servers di aruba !!! Giusto ?

                  1. it2.php.net/manual/en/function.json-last-error.php;
                    😄 Siamo sulla stessa strada ... L'ho provato sembra non riconoscere la funzione :bho:

                  Grazie mille comunque vada per la pazienza !!!!

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • G
                    gandalf User Attivo • ultima modifica di

                    :(): ... mi stà sorgendo un dubbio atroce !!!!

                    1. json_decode() non dà i risultati attesi
                    2. json_last_error() dà errore "Call to undefined function json_last_error()"

                    .... vuoi vedere che nel mio php 5.2.9 manca la libreria Json ? Se sì come la installo :mmm: ?!?!?

                    thanks all

                    dubbio sfatato:

                    if(function_exists('json_encode')){echo 'ok json_decode installato';}
                    
                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      mirkoagrati User Attivo • ultima modifica di

                      Ciao Gandalf,
                      se hai PHP > 5.xx allora le hai.

                      E' più probabile che siano inibite e quindi prova a vedere se nel php.ini
                      devi de-commentare la riga
                      [php]
                      ; extension=json.so
                      [/php]Ciao

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • G
                        gandalf User Attivo • ultima modifica di

                        @mirkoagrati said:

                        E' più probabile che siano inibite e quindi prova a vedere se nel php.ini
                        devi de-commentare la riga
                        [php]
                        ; extension=json.so
                        [/php]Ciao

                        ho cercato il file php.ini nel mio PC, poi con blocco note ho aperto il contenuto e ho cercato la stringa "json", l'unico risultato è questa riga:
                        ;extension=php_json.dll

                        mi devo preoccupare ?:?

                        ho decommentato la riga in questione, ho riavviato Apache e non è cambiato nulla !!!!

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • M
                          mirkoagrati User Attivo • ultima modifica di

                          Ciao Gandalf,
                          hai riavviato apache?
                          E' essenziale perchè il php.ini è caricato alla partenza.

                          Ciao

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • G
                            gandalf User Attivo • ultima modifica di

                            @mirkoagrati said:

                            prova così:
                            [php]
                            $json= json_encode('{"titolo":"ciao", "autore":"umberto eco"}');
                            $obj = json_decode($json);
                            echo $obj->titolo oppure $obj->{'titolo'}
                            [/php]
                            Ciao

                            mirko modificando di poco il tuo codice sopra funziona la prova che mi hai suggerito così (togliendo l'encode del json)

                            $json= '{"titolo":"ciao", "autore":"umberto eco"}';
                            $obj = json_decode($json);
                            echo $obj->titolo
                            
                            

                            mi torna la stringa "ciao".

                            però ho ritestato il mio codice :mmm: ma non funziona ancora 😢😢😢

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • M
                              mirkoagrati User Attivo • ultima modifica di

                              Eppur si muove (Archimede)
                              Dunque nel primo codice che hai postato non andava bene il doppio apice appena prima della parentesi quadra dell'array: togli i doppi apici e dovrebbe essere corretto.

                              Ciao

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • G
                                gandalf User Attivo • ultima modifica di
                                Eppur si muove (Archimede) 
                                ``` :D
                                
                                Beh sai che faccio (peccato non c'abbia pensato prima)
                                incollo la stringa del *console.log()* nel codice php
                                
                                

                                $json_str=('{"libro":[{"titolo":"rrrr","pagine":"299.5","Dat":"31/8/2009","Com":"lascia un commento..."}]}');
                                $obj=json_decode($json_str);
                                echo 'titolo='.$obj->titolo;

                                
                                e cosa ne ricavo ... :cry: nulla sempre vuoto !!!!! arghhhhh
                                
                                mentre se rettifico la stringa così:
                                

                                $json_str=('{"titolo":"rrrr","pagine":"299.5","Dat":"31/8/2009","Com":"lascia un commento..."}');
                                $obj=json_decode($json_str);
                                echo 'titolo='.$obj->titolo;

                                
                                funziona 
                                
                                Ma nel mio caso specifico ho bisogno di -UN- Titolo e una serie (array) di pagine/date/commenti .... come posso ?
                                
                                thanks
                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • M
                                  mirkoagrati User Attivo • ultima modifica di

                                  Non saprei,
                                  la sintassi json che utilizzi mi pare corretta;

                                  prova a vedere se c'è qualche patch o qualche nota sul sito degli sviluppatori,
                                  mi sembra che su php.net nella sezione json ci siano i contatti.

                                  Buona Fortuna Gandalf

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • G
                                    gandalf User Attivo • ultima modifica di

                                    Mirkoagrati grazie mille lo stesso per la tua disponibilità e i preziosi consigli 😄 grazie a te perlomeno ho una stringa funzionante da cui iniziare a capire dove sbaglio !!!

                                    Ciao.
                                    gandalf

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • G
                                      gandalf User Attivo • ultima modifica di

                                      Un piccolo passo avanti

                                      php code

                                      
                                      $json_str=('{"titolo":"La bella addormentata nel bosco","capitoli":[{"pagine":"299.5","Dat":"31/8/2009","Com":"lascia un commento..."}]}');
                                      
                                      $obj=json_decode($json_str);
                                      echo 'titolo='.$obj->titolo;
                                      
                                      

                                      Continua a funzionare .... Pian piano sembro capire meglio la situazione !!! :ciauz:

                                      Domandina come accedo ai valori dell'array "capitoli" ?

                                      byez

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • M
                                        mirkoagrati User Attivo • ultima modifica di

                                        Nessun problema,
                                        è stato un piacere !

                                        A presto

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • G
                                          gandalf User Attivo • ultima modifica di

                                          Perfetto ... funziona tutto se faccio fare il json_decode manualmente (impostando la stringa a mano) ma se ricavo la stringa dal $_POST[] non và :mmm:

                                          C'è qualche accorgimento durante il passaggio di variabili POST dal Javascript verso il PHP ?
                                          Ho provato già la funzione addslashes() e utf8_decode() ma non serve a nulla !!

                                          thanks

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • M
                                            mirkoagrati User Attivo • ultima modifica di

                                            Ciao Gandalf,
                                            scusa se non ti ho risposto per le proprietà dei capitoli: me la ero persa :mmm:

                                            Comunque,
                                            tornando all'ultimo post,
                                            penso che un motivo possa essere che in post le variabili arrivano 'cosi' invece di "cosi" e quindi il parse della stringa json non termina correttamente.

                                            Prova a inizializzarle in questo modo:
                                            [php]$varInPOST = "" . $_POST['var'];[/php]Buona notte.

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti