Collegamento metodo$.ajax con file php

VAik

Utente Attivo
16 Apr 2016
117
3
18
Ciao a tutti
oggi ho provato ad eseguire un collegamento semplice tra una pagina html con javascript ed un file .php.
Vorrei mostrare nella mia pagina html, dopo aver premuto un bottone, il timestamp che si ottiene nella mia pagina "prova_JSON2.php" . Ma anche senza errori non riesco a farlo funzionare.

Cosa devo modificare?


HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>


<script src="../css/lib/jquery-latest.js"></script>
<script src="../css/lib/jquery.effects.core.js"></script>
<style>
        #result{
            width: 250px;
            height: 100px;
            border: 1px solid gray;
        }

     .loading{   /*nascondo immagine gif*/
            display: none;
        }
</style>


<script type="text/javascript">
        $(document).ready(function() {
/*Nell’elemento #input_form, al verificarsi dell’evento submit,
 esegui la seguente funzione*/
            $("#input_form").submit(function(){
               
                 $(".button").attr("disabled", "disabled");
                 $(".loading").show();

                    /*Ora al verificarsi dell’evento submit
                    disabilitiamo il bottone e mostriamo l’immagine gif:*/
               
               $.ajax({  //fai richiesta ajax al file
               url: 'prova_JSON2.php',
               dataType: "json",
               success: function(data) {
                   $("#timestamp").html(data.timestamp);
                   $("#ora").html(data.ora);
                   $("#giorno").html(data.giorno);
                   $(".button").removeAttr("disabled"); //tolgo attributo
                    $(".loading").hide(); //nascondo gif

                   }
               });
            return false;
            });
  });
</head>
<body>
<form id="input_form" action="?">
        <input type="submit" value="richiedi dati">
       <img src="../images/spinner.gif" border="0" class="loading">

</form>

<div id="result">
   
  Il timestamp attuale è: <span id="timestamp"></span><br />
    Che corrisponde alle ore: <span id="ora"></span><br />
    Del giorno: <span id="giorno"></span>
</div>



</body>
</html>

invece il file "prova_JSON2.php"


PHP:
<?php

/*sleep(2);  posso aggiungere questa istruzione
per far sospendere per due secondi la risposta dal server*/



$time = time();
$ora = date("H:i:s");
$giorno = date("j/n/Y");
echo "{'timestamp':'$time','ora':'$ora','giorno':'$giorno'}";

/*Preleviamo il timestamp, l’ora e la data ed in seguito eseguiamo
 *  l’output a video nel formato Json (nome:valore).*/

?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, usa json_encode(), prova cosi
PHP:
$time = time();
$ora = date("H:i:s");
$giorno = date("j/n/Y");

$response = array(
    "timestamp" => $time,
    "ora" => $ora,
    "giorno" => $giorno
);
echo json_encode($response);
 
  • Like
Reactions: otto9due and VAik

VAik

Utente Attivo
16 Apr 2016
117
3
18
Funziona, grazie mille

Ho alcune domande:

1) perchè l'array lo scrivi così? e non
PHP:
$response = array[
        "timestamp":$time,
        "ora":$ora,
        "giorno":$giorno
];
che però crea anche qualche problema a livello di sintassi.
E' sbagliato a scriverlo così, punto e basta?

2)come ci si regola quando si deve comunicare con dati json?
costruisco sempre un array e poi utilizzo sempre json_encode() per fornire i dati in risposta ai metodi come $.ajax?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la sintassi corretta dell'array in php è come te l'ho postata io. Quello che mi hai scritto adesso è un incrocio tra un json e un array. Qui trovi un esempio di json che è molto più simile a quello che hai postato all'inizio. Quando lavoro con php e json utilizzo sempre la funzione json_encode(), posso passare un array multidimensionale aluucinante e mi restitiusce sempre un json perfetto.
 

VAik

Utente Attivo
16 Apr 2016
117
3
18
Grazie Criric della risposta.
quando vedo la parola array mi parte subito la [].

La forma dell'array allora può essere sia come quella mia (primo post) sia quella che mi hai fatto vedere. giusto?

altra cosa:
quando ragiono con dati JSON, nel file .php, devo inserire tutti i dati che mi servono in un array ed utilizzare json_encode per rimandarli alla pagina chiamante.

infatti nella funzione di success del metodo $.ajax
Codice:
success: function(data) {
$("#timestamp").html(data.timestamp);
                  $("#ora").html(data.ora);
                   $("#giorno").html(data.giorno);

utilizzo appunto data.ora, oppure data.giorno

accedendo così ai vari elementi dell'array.

giusto anche qui?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
il primo che hai scritto è un json scritto male, se scrivevi cosi
PHP:
echo '{"timestamp":' . $time . ',"ora":"' . $ora . '","giorno":"' . $giorno . '"}';
funzionava comunque. La funzione json_encode ti aiuta a creare json complessi e corretti.
Il resto è corretto.
 
  • Like
Reactions: VAik

VAik

Utente Attivo
16 Apr 2016
117
3
18
Nella pratica avere come risposta ad un metodo $.ajax, dati html, o json da cosa dipende?
da come sono stati creati le varie pagine (.php , .html etc etc) coinvolte del sito?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dipenda da come vuoi utilizzare i dati ricevuti, se li devi usare per altre chiamate o per aggiornare degli elementi della pagina chiamante ti conviene utilizzare il json in alternativa puoi semplicemente stampare l'html con $("#contenitore").html(data); cambiando il dataType:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
più o meno si. Devi fare pratica e ti accorgerai da solo delle piccole differenz.
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Collegamento tra form html e script php PHP 4
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
S [PHP] collegamento database PHP 4
S [PHP] Creare collegamento filtri di ricerca al database PHP 6
mferri Collegamento con xampp non funziona più da cambio di operatore. Web Server 2
K [PHP] Collegamento tra più tabelle PHP 10
A Ricerca con collegamento in altro sito web Discussioni Varie 0
M [PHP] Filtro da TXT con collegamento ipertestuale PHP 13
Drago73 [PHP] collegamento DB con OOP PHP 1
ICTSM [PHP] Collegamento a database non localhost PHP 3
trattorino [PHP] Select tre tabelle collegamento PHP 9
yanhong telecamere avidsen e panasonic, difficoltà di collegamento IP Cam e Videosorveglianza 0
andreas88 Collegamento in rete tra W8 e W7 in un ufficio Reti LAN e Wireless 0
G pagina asp e collegamento a url esterno Classic ASP 1
G Collegamento a database con javascript Javascript 1
P cancellata discussione con un collegamento link Offerte e Richieste di Lavoro e/o Collaborazione 6
E [Javascript] Collegamento al "click" al foglio .js Javascript 6
Carlo77 Collegamento ad internet in rete Lan Reti LAN e Wireless 2
ANDREA20 Problema collegamento Server Dedicati e VPS 4
A collegamento a database locale PHP 1
romeocharly E' possibile creare un collegamento tra un id di db mysql ed un file per il download? PHP 0
V creare un collegamento di pagina html in php PHP 10
P Creare un collegamento mt4 pagina web CMS (Content Management System) 0
L collegamento esterno PHP 1
N my sql tipo dato collegamento ipertestuale PHP 2
A Alert con collegamento a pagina Javascript 1
francesco7 Errore collegamento script a Mysql Aruba PHP 0
A Collegamento a link esterno HTML e CSS 4
D Problema collegamento file css con html HTML e CSS 4
P Come creare un collegamento a un'altra pagina con un bottone? HTML e CSS 12
T Collegamento dlink - fastweb Reti LAN e Wireless 10
G Collegamento tra pagine jsp tramite 2 bottoni diversi Java 1
O Errore di collegamento al Database PHP 2
O Problemi collegamento a MySQL PHP 61
M Creazione di una videoteca in collegamento fra Access 2003 e Microsoft Visual Web Dev ASP.NET 1
F Collegamento automatico ad un link e scarco archivio PHP 0
WorldWideWeb Collegamento di 2 router in casa Reti LAN e Wireless 6
X Strano collegamento HTML e CSS 16
P Come posso fare questi effetti di collegamento tra pagine di un sito web? Javascript 5
A form: action= collegamento sito esterno??? PHP 1
L Problema collegamento in remoto di Wireshark Reti LAN e Wireless 0
Web Designer Teletu: parametri di configurazione per collegamento ADSL Adsl e Connettività 0
F Pagina HTML e collegamento ai blog - UN AIUTO !! PHP 2
M aggiungere collegamento ai link PHP 11
I collegamento al sito dopo la fine dell'intro Flash 1
asevenx collegamento su frame HTML e CSS 1
W sito con collegamento ftp per ogni utente HTML e CSS 0
L Problema collegamento ipertestuale Flash 0
Pandaproject Inserire Collegamento ipertestuale dentro uno script *.js Javascript 0
F Collegamento da form al database e ritorno! Classic ASP 2

Discussioni simili