El una aplicacion web creada con php, mysql (myphpadmin of course) y este esta lleno de formularios para los cuales utilizo un metodo de autocomplete. Bueno el problema es con los acentos y ñ, pero no sobre los datos que cargo cuando busco una pagina, sino sobre los datos que se muestran en el autocomplete y viceversa, cuando busco un dato con acento no lo entiende.
Paso a explicar con imagenes y codigos
en la imagen se pueden apreciar 2 cosas, una que el error aparece sobre el div de busqueda o autocomplete que aparece al buscar una letra, y la otra es que sobre el fondo existe una lista que se busco previamente, la cual esta con acentos y no tiene ningun inconveniente.
La funcion del autocomplete seria la siguiente:
Código PHP:
<?php require_once('../Connections/DNPOIC_db.php');
$db = new mysqli($hostname_DNPOIC_db, $username_DNPOIC_db ,$password_DNPOIC_db, $database_DNPOIC_db);
if(!$db) {
echo 'ERROR: Could not connect to the database.';
} else {
if(isset($_POST['queryString'])) {
$queryString = $db->real_escape_string($_POST['queryString']);
$tabla = $db->real_escape_string($_POST['tabla']);
$columna = $db->real_escape_string($_POST['columna']);
$fill = $db->real_escape_string($_POST['fill']);
if(strlen($queryString) >0) {
$query = $db->query("SELECT distinct ".$columna." FROM ".$tabla." WHERE ".$columna." LIKE '$queryString%' order by ".$columna." LIMIT 10");
if($query) {
while ($result = mysqli_fetch_object($query)) {
echo '<li align="left" style="line-height:10px" onClick="'.$fill.'(\''.$result->$columna.'\');">'.$result->$columna.'</li>';
}
} else {
echo 'ERROR: There was a problem with the query.';
}
} else {
// Dont do anything.
}
} else {
echo 'There should be no direct access to this script!';
}
}
include "../Connections/cerrarconexion.php";
?>
Código HTML:
<script language="javascript" type="text/javascript"> function ListaOrganismo(inputString) { if(inputString.length == 0) { // Hide the suggestion box. $('#OrganismoListaDiv').hide(); } else { $.post("../autocompletes/autocomplete.php", {queryString: ""+inputString+"", tabla: "orgorganismos", columna: "Org_NombreEsp", fill: "fillOrganismo"}, function(data){ if(data.length >2) { $('#OrganismoListaDiv').show(); $('#OrganismoLista').html(data); } else { $('#OrganismoListaDiv').hide(); OrganismoDeshacerLista(); } }); } } // lookup function fillOrganismo(thisValue) { if(thisValue!=""){ $('#Organismo').val(thisValue); setTimeout("$('#OrganismoListaDiv').hide();", 200); } } function OrganismoDeshacerLista(){ $('#OrganismoLista').css({ 'border': '', 'border-width':'' }); } </script>
Esta puesto todo el sitio, header y base de datos en UTF8. Me volvi loco poniendo el utfdecode y todo ese tipo de parches pero no encontre solucion, si alguno tiene alguna idea, ya se los estoy agradeciendo!
Espero alguna respuesta. Saludos