Joomla.it Forum
Non solo Joomla... => Sviluppo => : geppo157 24 Jul 2015, 14:58:58
-
Ciao a tutti e complimenti per il forum.
Vi premetto fin da subito che di lavoro non sono un programmatore PHP e per questo chiedo aiuto a voi.
Il problema e il seguente ho dei dati codificati in json code questi dati sono Nome e Cognome e Numero di telefono inseriti dagli utenti al momento della registrazione dovrei estrarli trasformarli in 3 variabili e fargli stampare a video tramite il comando Echo o Print.
Sto provando con questo codice ma non capisco perchè non funzioni sapete aiutarmi perchè sto diventando matto.
Codice e commenti:
<?php
//Questa linea dovrebbe creare un array che si chiama $sms Giusto?
$sms= json_decode($event->customfields_data,true);
echo $sms[1].'[br /]';
$sms= array();
//Questa linea invece controlla che la variabile $event non sia vuota Giusto?
if ($event->customfields_data && $event->customfields_data != '') {
//Questa linea tramite foreach estrae i dati dalla array $sms presumo Giusto?
echo $event.'[br /]';
foreach (json_decode($event->customfields_data,true) as $field)
;{
//Questa linea invece dovrebbe controllare che nella variabile field sia presente il customfiled mobile (il numero di telefono inserito al momanto della prenotazione) questa non capisco la sintassi
if (in_array($field['mobile'],json_decode($event->customfields_data,true)))
//questa linea invece assegna alla variabile $data il contenuto della variabile $field tramite la chiave data Giusto?
$sms[] = $field['data'];
//questa linea dovrebbe stampare il contenuto della variabile $data Giusto? In realtà a me basterebbe stampasse il campo mobile contenuto in custumfield.
echo $sms.'[br /]';}} ?>
//
A quanto ho capito il contenuto dei campi nome Cognome e telefono sono contenuti nella variabile $event.
Grazie in anticipo.
-
Se non usi il tag codice sul forum, tutto il codice sballa e perde il suo significato quindi sarà impossibile aiutarti.
-
Modificato grazie Giovi
-
In quale contesto lavori? Ovvero dove si trova questo codice?
Cosa intendi per non funziona?
Rispondendo ai commenti del codice, json_decode restituisce un array di tipo associativo, per cui se la stringa json è {"nome":1,"cognome":2,"indirizzo":3,"ecc":4,"etc":5}
Per accedere al secondo valore 2 dovrai scrivere
$sms['altro']
se subito dopo fai $sms = array(); svuoti l'array reinizializzandolo con valori nulli quindi tutto il codice che c'è dopo non potrà più lavorare su $sms.
La linea if ($event->customfields_data && $event->customfields_data != '')
controlla che la variabile sia piena e contemporaneamente diversa da vuoto (un controllo un po ridondante, non credi?)
Se $event è un oggetto non puoi scrivere echo $event ma dovrai utilizzare la funzione var_dump();
La linea foreach (json_decode($event->customfields_data,true) as $field)
cicla sul contenuto dell'array creato in seguito alla decodifica di quella stringa (che poi sarebbe lo stesso contenuto iniziale di $sms!!!)
Questo invece controlla che nell'array prodotto dalla decodifica ci sia il valore di $fiels['mobile']:
if (in_array($field['mobile'],json_decode($event->customfields_data,true)))
//questa linea invece assegna alla variabile $data il contenuto della variabile $field tramite la chiave data Giusto?
$sms[] = $field['data'];
Giusto
//questa linea dovrebbe stampare il contenuto della variabile $data Giusto?
echo $sms.'[br /]';}} ?>
Sbagliato