PHP - Consulta de base se ve en página con Windows pero no en Android

 
Vista:
Imágen de perfil de Oscar Hernandez

Consulta de base se ve en página con Windows pero no en Android

Publicado por Oscar Hernandez (2 intervenciones) el 30/11/2021 02:01:37
Buenas a todos:

Estoy realizando una consulta a base de datos y obtengo el resultado esperado en el navegador de Windows pero al realizar la misma consulta en la página a través de Android, no me aparece ningún dato como resultado.

Estoy usando php para presentar los datos y ajax para comunicación entre archivos. Los archivos se encuentran ya instalados en un hosting y la base de datos en phpmyadmin: Utilizo 3 archivos:

Gracias de antemano.


Archivo 1.- abrir_conexion

<?php

//INFORMACIÓN BASE DE DATOS
$host = "localhost";
$basededatos = "optica_clientes";
$usuariodb = "root";
$clavedb = "";

//TABLA
$tabla_db1 = "armazon";

$conexion = new mysqli($host,$usuariodb,$clavedb,$basededatos);

?>

Archivo 2.- index.php

<!DOCTYPE html>
<html>
<head>
<title>Optica en Línea</title>
<script src="jquery-3.4.1.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

<link rel="shortcut icon" href="img/01.Logo Ojo.ico" type="image/x-icon" />

</head>
<body>

<div class="container">
<br>
<h1 class="text-center">OPTICA EN LÍNEA</h1>
<hr>
<div class="row text-center">
<div class="col"></div>
<div class="col">

<input type="text" id="cuadro_buscar" class="form-control" onkeypress="buscando();">

</div>
<div class="col"></div>
</div>

<hr>

<h2 class="text-center">LISTA DE GRADUACIONES</h2>
<div class="row justify-content-md-center">
<div class="col-md-8">
<div id="mostrar_mensaje"></div>
</div>
</div>
</div>


<!-- ----------------- AJAX -------------------------->
<script>
function buscando()
{
buscar = document.getElementById('cuadro_buscar').value;
var parametros =
{
mi_busqueda : buscar,
accion : "1"
};

$.ajax({
data: parametros,
url: 'codigo_php.php',
type: 'POST',

beforesend: function()
{
$('#mostrar_mensaje').html("Mensaje antes de Enviar");
},

success: function(mensaje)
{
$('#mostrar_mensaje').html(mensaje);
}
});
}

</script>
<!-- ----------------- TERMINA AJAX --------------------------->

</body>
</html>


Archivo 3.- codigo.php

<?php
include("abrir_conexion.php");

echo
'
<table class="table table-hover">
<tr>
<th scope="col">NOMBRE</th>
<th scope="col">ESF.D</th>
<th scope="col">ESF.I</th>
</tr>
';

$accion= $_POST['accion'];

if($accion == 1)
{
$mi_busqueda = $_POST['mi_busqueda'];
$result_nomb = mysqli_query($conexion,"SELECT * FROM $tabla_db1 WHERE NOMBRE LIKE '$mi_busqueda%' LIMIT 2");
while($cons_nomb = mysqli_fetch_array($result_nomb))
{
echo
'
<tr>
<td>'.$cons_nomb['NOMBRE'].'</td>
<td>'.$cons_nomb['D_ESF'].'</td>
<td>'.$cons_nomb['I_ESF'].'</td>
</tr>
';
}

}

echo '</table>';

?>
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
Imágen de perfil de Fabian
Val: 157
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Consulta de base se ve en página con Windows pero no en Android

Publicado por Fabian (60 intervenciones) el 01/12/2021 13:30:08
Tratá de poner el script de ajax dentro del head pero fuera del body. No lo pongas dentro del body. Ponelo fuera del body.
El problema surge en algunos navegadores porque no cargan aveces los scripts que estan dentro del body. Al ponerlo fuera del mismo, el navegador primero carga los scripts y luego cargan la pagina.

Por eso te puede pasar que al realizar la consulta de AJAX, el script no haya sido cargado y no pueda entonces ejecutar la función requerida para la busqueda.

Suerte..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Oscar

Consulta de base se ve en página con Windows pero no en Android

Publicado por Oscar (2 intervenciones) el 12/12/2021 00:21:19
Hola Fabián, gracias por la respuesta.

Sin embargo buscando más información en internet, he podido deducir la razón por la diferencia de funcionamiento entre Windows y Android. A continuación reescribo parte del archivo 2 donde se encuentra el problema, la clave se encuentra en la última línea copiada.

En ella se utiliza el evento onkeypress="buscando();" que indica que al presionar una tecla se realice la búsqueda de la información, pero en Android no se utilizan teclas físicas sino teclas de un teclado virtual por lo que al ir escribiendo no hay activación del evento onkeypress y la función no es llamada.


Archivo 2.- index.php

<!DOCTYPE html>
<html>
<head>
<title>Optica en Línea</title>
<script src="jquery-3.4.1.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

<link rel="shortcut icon" href="img/01.Logo Ojo.ico" type="image/x-icon" />

</head>
<body>

<div class="container">
<br>
<h1 class="text-center">OPTICA EN LÍNEA</h1>
<hr>
<div class="row text-center">
<div class="col"></div>
<div class="col">

<input type="text" id="cuadro_buscar" class="form-control" onkeypress="buscando();">


Lo que no he podido encontrar es el equivalente al evento onkeypress para un teclado virtual en Android.

Saludos.
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
Imágen de perfil de Fabian
Val: 157
Ha disminuido su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Consulta de base se ve en página con Windows pero no en Android

Publicado por Fabian (60 intervenciones) el 12/12/2021 10:55:40
en Android tenes que usar "onkeyup"

1
onkeyup="buscando();"
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