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
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


0