Per poter rendere le applicazioni dinamiche è necessario che esse dialoghino con un server remoto dal quale recuperare, tramite query ad un database, le informazioni richieste.
Nasce spontanea l'esigenza di dover leggere il risultato PHP dalla nostra applicazione che, non interpretando direttamente tale linguaggio server side, ha bisogno che tale risultato venga precedentemente convertito in un formato adatto all'interscambio di dati, ed ecco che entra in gioco il JSON (non scendo in spiegazioni su questo formato, basti pensare che per quanto ci interessa è rappresentato da un oggetto o array al cui interno esistono una serie di array associativi racchiusi tra parentesi graffe e separati da virgola che a sua volta contengono coppie chiave-valore), un esempio è il seguente:
[{"id":"1","nome":"Mario","cognome":"Rossi","anni":"37"},{"id":"2","nome":"Giuseppe","cognome":"Verdi","anni":"85"},{"id":"3","nome":"Tizio","cognome":"Incognito","anni":"50"}]
Per ottenere tale struttura tramite PHP, dopo aver eseguito la query di nostro interesse, è necessario convertire in primo luogo il recordset in un array e successivamente tramite la funzione json_encode generare la stringa json.
Di seguito i passaggi:
Recupero dei dati da query (a titolo esemplificativo inserisco una semplice query tralasciando tutto ciò che serve per il suo specifico funzionamento, ossia creazione del database, creazione della tabella, popolamento dati e connessione al db, che esulano dallo scopo di questo articolo):
<?php
$sql = "select nome,cognome,anni from tabella_dipendenti";
$result = mysqli_query($mia_connessione, $sql);
?>
Conversione del recordset in un array:
<?php
$mio_array = array();
while($row = mysqli_fetch_assoc($result)) {
$mio_array[] = $row;
}
?>
Conversione dell'array da PHP a JSON:
<?php
echo json_encode($mio_array);
?>
Ed se il risultato a video sarà una struttura simile a quella evidenziata a inizio articolo potrete recuperarla tramite la vostra app ed elaborare i dati di conseguenza.
Sorry, only one question, how can i pass JSON array at my ionic app? Thank's
Hi Edoardo,
from the app just you make a http request to the page that generates json.
Thank's and which parameters must i pass in the http request?
Thank's
This depends on the parameters that your PHP page needs to receive to give you back the JSON.
Similarly to call from another web page or a form...
ciao, puoi aiutarmi?
ho creato un form che tramite una chiamata mi restituisce una stringa
{
"PageSize": 10,
"PageNumber": 0,
"PageCount": 1,
"ItemsCount": 1,
"Result": [{
"CodShop": 1,
"NumRepair": 50129,
"CodCustomer": 6240,
"Surname": "D'xxx",
"Name": "xxx",
"Phone": "xxx",
"Mobile": "xxx",
"RepairType": 2,
"WorkType": 1,
"RepairState": 1,
"TakeOverDate": "2016-11-30T00:00:00",
"Object": 36,
"GramsPieces": 1.00,
"ObjectDescription": "COLTELLO CLIENTE",
"ToDo": "PREV PER SOSTITUIRE LA LAMA",
"PendingPayment": 0.0000,
"AgreedPrice": 0.0000,
"RepairCost": 0.0000,
"RepairPrice": 0.0000,
"AppliedPrice": 0.0000,
"CodRepairer": 17,
"ToPrintDdT": false,
"PrintedDdT": false,
"NumDdtRepairer": "0",
"WithdrawalWith": 0,
"NumFiscalReceipe": 0,
"QuoteState": 3,
"QuoteAnswer": 1,
"QuoteCost": 40.0000,
"QuotePrice": 80.0000,
"QuoteNote": "80.00 CAD PER SOSTITUIRE LAME E ARGENTARE",
"DateComunRepairer": "2017-03-15T00:00:00",
"DateComunCustomer": "2017-03-15T00:00:00",
"PrintNote": false,
"NoteNumber": 0,
"TakenUser": "admin",
"SendSms": true,
"SendEmail": true,
"IsMasterRepair": false,
"DeclaredValue": 0.0000,
"ValueOfInsured": false,
"PressForQuestura": false,
"CodVAT": 3,
"PearlsOfPearlsNum": 0,
"ReceivingrepairerConfirmed": false,
"ReturnFromRepairerConfirmed": false
}]
}
come posso far vedere a video solo alcune parti di questa? es. solo ObjectDescription oppure un elenco di parti?
grazie mille
Ciao domenico,
hai provato con json_decode?.