Compilazione automatica campi in input stessa pagina

Max61

Utente Attivo
2 Mar 2014
691
3
18
Salve, ho la necessità di compilare i campi in input con i dati dati presi dal db automaticamente sulla pagina di inserimento.
Cerco di spiegarmi meglio: adesso ho una pagina dove digitando il codice fiscale con POST lo invio ad un altra pagina dove recupero i dati dal db, usando quindi 2 pagine.
Adesso vorrei che digitando il codice fiscale i campi si compilassero nella stessa pagina.
ho trovato questo modulo pubblicato dall'utente alessandro1997 che sembra faccia al caso mio, ma al solito non riesco a farlo funzionare.
PHP:
<!DOCTYPE html>
<html lang="it">
    <head>
        <meta charset="utf-8">
        <title>Compilazione automatica</title>
    </head>

    <body>
        <form action="#" method="post">
            <div>
                <label>id_residente:</label>
                <input type="text" name="id_residente" id="id_residente">
            </div>

            <div>
                <label>cognome:</label>
                <input type="text" name="cognome" id="cognome">
            </div>

            <div>
                <label>nome:</label>
                <input type="text" name="nome" id="nome">
            </div>

            <div>
                <label>codice_fiscale:</label>
                <input type="text" name="codice_fiscale" id="codice_fiscale">
            </div>

            <div>
                <button type="submit">Invia</button>
                <button id_residente="autofill">Compilazione automatica</button>
            </div>
        </form>

        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script>
        $(function() {
            $("#autofill").click(function() {
                $.getJSON("autofill.php", {
                    'id_residente': $("#id_residente").val()
                }, function(data) {
                    if (data.result == 'success') {
                        $("#cognome").val(data.info.cognome);
                        $("#nome").val(data.info.nome);
                        $("#codice_fiscale").val(data.info.codice_fiscale);
                    } else if (data.result == 'not-found') {
                        alert("ID non trovato.")
                    } else if (data.result == 'error') {
                        alert("Errore interno.");
                    }
                });
            });
        });
        </script>
    </body>
</html>
PHP:
<?php
$id = isset($_POST['id']) ? trim($_POST['id']) : 0;

try {
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
} catch (PDOException $e) {
    die(json_encode(array(
        'result' => 'error',
    )));
}

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stm = $pdo->prepare('SELECT title, category, year FROM tabella WHERE id = ?');

try {
    $stm->execute(array($id));
} catch (PDOException $e) {
    die(json_encode(array(
        'result' => 'error',
    )));
}

if ($stm->rowCount() == 0) {
    die(json_encode(array(
        'result' => 'not-found',
    )));
}

$data = $stm->fetch();

echo json_encode(array(
    'result' => 'success',
    'info'   => $data,
));
Qualcuno sa darmi una mano?
Grazie
Max61