Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2012, 21:29
braianj
 
Fecha de Ingreso: enero-2012
Mensajes: 4
Antigüedad: 12 años, 11 meses
Puntos: 0
Pregunta Problema con UTF8 en PHP y Javascript

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