entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Autocompletar input mediante otro input usando Typeahead

Hola a todos tengo el siguiente problema estoy usando la libreria Typeahead.js para autocompletar la busqueda de registros mediante un input text y autorellenar otro input text a partir de lo que se ha buscado he buscado documentacion en internet y no logro descifrar la forma de como realizar un segundo proceso para traer un segundo valor al input text de forma automatica.

el codigo JS es el siguiente:

<script type="text/javascript">
    $(document).ready(function () {
        $('#txtnombre ').typeahead({
            source: function (query, result) {
                $.ajax({
                    url: "views/v_matricula/server.php",
                    data: 'query=' + query,            
                    dataType: "json",
                    type: "POST",
                    success: function (data) {
                        result($.map(data, function (item) {
                            return item;

                        }));

                    }
                });

            }
        });

    });
</script>

el archivo que hace la consulta ala bd (SERVER.PHP) es el siguiente:

<?php       
    $keyword = strval($_POST['query']);
    $search_param = "{$keyword}%";
    $conn =new mysqli('localhost', 'root', '' , 'siades_beta');

    $sql = $conn->prepare("SELECT * FROM persona WHERE Nombre LIKE ? AND Estado_familiar='No'");
    $sql->bind_param("s",$search_param);            
    $sql->execute();
    $result = $sql->get_result();
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {

        $personResult[] = $row["Nombre"]." ".$row["Apellido"];
        $id=$row["Id"];

        }
        echo json_encode($personResult);

    }
    $conn->close();
?>

y las cajas de texto que pertenecen al formulario son las siguientes:

<input type="text" name="txtnombre" id="txtnombre" class="form-control typeahead"> // caja de texto que hace la busqueda
<input type="text" name="tex" id="p"> // caja de texto que se espera autorellenar

librerias:

<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="assets/js/typeahead.js"></script>

las disculpas soy nuevo y si pudieran brindare una solucion lo agradeceria mucho :)

1 Respuesta

1voto

pedrourday Puntos3330

Hola @JairSV!

El codigo parece estar correcto excepto un detalle: en el archivo server.php la primera linea de codigo debe ser:

header("Content-Type: application/json");

Lo que PHP devuelve, en este caso, esta en formato JSON y si no lo especificás, lo que devuelve por defecto es HTML. Es decir, equivale a:

header("Content-Type: text/html; charset=utf-8");

Quizas ese sea el problema.

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta