Buenas noches colegas! voy a tratar de describir mi inconveniente lo mas claramente posible ya que intente resolverlo de varias formas no encuentro solucion.
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";
?>
y el metodo de javascript (jquery) que utilizo es el siguiente:
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