Joomla.it Forum

Non solo Joomla... => Sviluppo => : geppo157 24 Jul 2015, 14:58:58

: Aiuto con codice
: 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?
$smsjson_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.

 
 
: Re:Aiuto con codice
: giovi 24 Jul 2015, 21:30:59
Se non usi il tag codice sul forum, tutto il codice sballa e perde il suo significato quindi sarà impossibile aiutarti.
: Re:Aiuto con codice
: geppo157 24 Jul 2015, 21:35:58
Modificato grazie Giovi
: Re:Aiuto con codice
: giovi 27 Jul 2015, 12:45:26
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