Una de las maneras para rellenar un formulario dinámicamente en base a una petición AJAX es por medio de JSON.
Supongamos el siguiente escenario. Tenemos un formulario que se tiene que autorellenar en base a una petición AJAX, por ejemplo, le pasamos el código de una persona y nos tiene que mostrar los datos.
// Fichero datos.php $datos = array( 1 => array('nombre' => 'Yo', 'apellidos' => 'mismo'), 2 => array('nombre' => 'Tu', 'apellidos' => 'aquel'), ); $codigo = filter_input(INPUT_POST, 'codigo', FILTER_SANITIZE_NUMBER_INT); foreach ($datos as &$dato) { $dato = utf8_encode($dato); } echo json_encode($datos[$codigo]);
<!-- Fichero formulario.html --> <form id='formulario'> <input type='text' id='codigo'> <button type='button' id='buscar'>Buscar Registro</button> <input type='text' id='nombre'> <input type='text' id='apellidos'> </form> <script> $('#buscar').click(function(){ $.post('datos.php', {codigo:$('#codigo').val()}, function(data){ data = JSON.parse(data); $('#nombre').val(data.nombre); $('#apellidos').val(data.apellidos); }); return false; }); </script>
En este ejemplo los datos están almacenados dentro de un array, lo normal es que fueran resultado de una consulta SQL.
En el formulario pongo, por ejemplo, el 1 para obtener los datos, estos se mandan vía post al fichero de datos, antes de devolverlos los codifico con utf8_encode para que no de ningún error, luego les damos formato con json_encode, y una vez que lo recibimos los tenemos que tratar con JSON.parse para poder acceder a ellos como si fueran un objeto.