PHP - Buscar coincidencias en base de datos para seleccionar registro en el mismo input

 
Vista:

Buscar coincidencias en base de datos para seleccionar registro en el mismo input

Publicado por Marina (2 intervenciones) el 12/03/2024 10:14:48
Buenos días.

Estoy utilizando php con un formulario html para realizar una búsqueda en un campo input text. Se trata de buscar el nombre de un cliente (nombre_razon_social) dentro de una base de datos, mostrando las coincidencias conforme se va escribiendo en el campo input y que entre estas coincidencias se pueda seleccionar una de ella para que quede dentro del campo input y se pueda pulsar el botón de enviar para que te muestre todos los datos de ese cliente seleccionado. De momento consigo que se realice la búsqueda y se muestren las coincidencias, pero el problema es que no puedo mostrar las coincidencias como parte del input de búsqueda para utilizar los resultados como búsqueda definitiva de un solo registro. Lo he intentado con autowesome, con un select también, pero no hay forma de que los nombres que muestro se pueden clicar o seleccionar.

Este sería el código del formulario con el script debajo que llama a businp.php para realizar la búsqueda en la base de datos:

<form role="form" name="login" action="consulta_cliente_8hsh29XhejdF2g9dkskldkfjghdPoRo65fAs8.php" method="post" >
<div class="form-group">
<label for="nombre_razon_social">Nombre del cliente</label>
<input autocomplete="off" type="text" class="form-control" id="nombre_razon_social" name="nombre_razon_social" placeholder="Nombre de cliente" size="80" value="" onkeyUp="Cargar()">
<button type="submit" class="btn btn-default btn-contact">Buscar</button>
<div id="contenido"></div>

</form>

<script>

function Cargar(){
var nombre= document.getElementById("nombre_razon_social").value;
var numeroCaracteres = nombre.length;
if(numeroCaracteres > 2){
var url="businp.php";

$.ajax({

type: "POST",
url:url,
data:{nombre:nombre},
success: function(datos){
$('#contenido').html(datos);

}
});

} else {
var url="businp.php";
var nombre=0;

$.ajax({
type: "POST",
url:url,
data:{nombre:nombre},
success: function(datos){
$('#contenido').html(datos);
}
});

}
}


</script>

Y este sería el archivo que consulta las coincidencias en la base de datos, businp.php:

<?php
include "conexion.php";


$searchTerm="";
$combobit="";
if(isset($_POST['nombre']))
{
$searchTerm = $_POST['nombre'];
}
//get matched data from skills table
$query = $con->query("SELECT * FROM informacion_cliente WHERE nombre_razon_social LIKE '%".$searchTerm."%' ORDER BY nombre_razon_social ASC");
$id=0;
$html="";
echo "<br>";
while ($row = $query->fetch_assoc()) {
$id++;
$datos=$row["nombre_razon_social"];
echo $datos."<br>";

}
?>

La búsqueda conforme se escribe sin pulsar el botón de "Buscar" la hace bien y la muestra de los resultados coincidentes lo hace correctamente, pero no puedo seleccionar uno de ellos para que se utilice para poder buscar pulsando el botón en el input.

No sé si me habré explicado bien como para que me entendáis. A ver si alguien puede ayudarme. Muchas gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Buscar coincidencias en base de datos para seleccionar registro en el mismo input

Publicado por Marina (2 intervenciones) el 12/03/2024 16:37:50
Muchas gracias, Alejandro, no conocía datalist. Acabo de conseguirlo utilizando lo que menos me esperaba jaja, anclas.

Dentro del while iría lo siguiente para mostrar la coincidencias

echo '<a id="'.$datos.'">'.$datos.'</a><br>';

Así cuando despliega cada opción puedes clicar para situarla dentro del input y realizar la consulta a la base de datos.

Muchas gracias a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar