Recupero dati json

Fabio_97

Nuovo Utente
19 Lug 2016
3
0
1
27
Buongiorno a tutti, sto imparando ad usare dati json e volevo provare con questo semplice codice, in cui inserisco nome e cognome e tramite ajax li mando a una struttura json per poi recuperarli e stamparli in una tabella.
ajax.php
Codice:
<html>
<head>
    <title>Ajax</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>       
</head>
<body>
    <form id="iscrizione">
        Nome: <input type="text" id="nome" /><br />
        Cognome: <input type="text" id="cognome" /></br >
        <input type="submit" id="invia" value="ISCRIVITI" />
    </form>
   
    <table>
        <tr><td>Nome: </td><td><span id="td_nome"></span></td></tr>
        <tr><td>Cognome: </td><td><span id="td_cognome"></span></td></tr>
    </table>
   
    <script type="text/javascript">
        $("#iscrizione").submit(function(){
            var nome = $("#nome").val();
            var cognome = $("#cognome").val();
            $.ajax({
                url: "json.php",
                type: "POST",
                data: {nome: nome, cognome: cognome},
                dataType: "json",
                success: function(msg){
                    $("span#td_nome").html(msg.nome);
                    $("span#td_cognome").html(msg.cognome);
                },
                error: function() {
                    alert ("Chiamata Fallita");
                }
            });
        });
    </script>
</body>
</html>
json.php
Codice:
<?php
    header("Content-Type: application/json", true);
    $dati = array( 'nome'=>$_POST['nome'], 'cognome'=>$_POST['cognome'] );
    echo json_encode($dati);
?>
Dove sbaglio? Grazie mille per le risposte
 
Ciao, il submit del form non deve avviarsi altrimenti si ricarica la pagina, puoi modificare l'inizio della funzione cosi
Codice:
$("#iscrizione").submit(function (e) {
                e.preventDefault();
oppure sostitiure il submit con un semplice button e modificare cosi
Codice:
$("#invia").click(function(){
 
Ciao, non si capisce bene quale sia il tuo problema ma un errore comune è il non stampare tramite php un array multi-dimensionale.

Ti posto un mio codice per farti capire:

Codice:
#JSON ERRORE
    $json_error_response[] = array(
        "answer" => false,       
            array("log" => "Attenzione si sta cercando di inserire un appuntamento in una data precedente alla data odierna.", "action" => "Selezionare una data antecedente alla data odierna.")
    );

La differenza tra questo e il tuo script è che tu ritorni un array (
$dati = array( 'nome'=>$_POST['nome'], 'cognome'=>$_POST['cognome'] ) ) semplice, l'utilizzo corretto prevede un array multidimensionale.

Fammi sapere, ciao.
 

Discussioni simili