Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problemas con encodig

Estas en el tema de Problemas con encodig en el foro de Frameworks JS en Foros del Web. Hola a Tod@s, Antes que nada, Saludos Cordiales, Disculpenme extenderme tanto en el tema pero son las pruebas que realizado sin exito.... Este tema lo ...
  #1 (permalink)  
Antiguo 26/02/2012, 13:08
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Pregunta Problemas con encodig

Hola a Tod@s,

Antes que nada, Saludos Cordiales,

Disculpenme extenderme tanto en el tema pero son las pruebas que realizado sin exito....

Este tema lo planteé en el foro de PHP pensando que el lío era por ese lado, pero ya he descartado esa idea. Les planteo el problema que tengo

Al hacer una consulta a la base de datos las columnas que contienen el caracter Ñ no los retorna, es decir, deja la columna vacía (null).

Si hago SELECT nombre FRON tabla WHERE id='1234' el valor obtenido es null.

Al hacer la consulta por pgAdmin me retorna bien el dato, el nombre es PEPITO PIÑERES.

Este es el código de cómo lo estoy haciendo:

Código PHP:
        datos "col="+col+"&posi="+posi+"&ced="+ced+"&nom="+nom+"&accion=consultar";
console.log(datos);
        $.
ajax({
            
type"POST",
            
url"pret_multiple.php",
            
//contentType: "application/json; charset=ISO-8859-1",
            //contentType: "application/json; charset=utf-8",
            
dataType"json",
            
datadatos,
            
success: function(json) {
console.log(json);
            }
        }); 
Al hacerlo de esta manera no obtengo ninguna clase de respuesta, es decir, el console.log(json) no se ejecuta.

Al quitar el parámetro contentType sí obtengo respuesta pero el dato que necesito llega en null

El código php que estoy haciendo es el siguiente

Código PHP:
        case "consultar":
            
extract($_POST);
            if (
strlen(trim($ced)) > 0) {
                   
$sel_comp "maestro.cedula = '$ced'";
            }
            if (
strlen(trim($nom)) > 0) {
                
$nom ereg_replace("\*","%",$nom);
                
$p strpos($nom,"%");
                if (
$p == 0)
                    
$nom .= "%";
                   
$sel_comp "maestro.nombre like '$nom'";
            }
            
$sql "SELECT maestro.cedula, trim(maestro.nombre) as nombre FROM maestro WHERE $sel_comp AND estado = 'A' ORDER BY 2 ";
            
$res lee_todo($sql);
                
$suc true;
                echo 
json_encode(
                    array(
                        
"success" => $suc,
                        
"msg" => $sql,
                        
"data" => $res
                    
)
                );
 die; 
El resultado del query que estoy haciendo lo envío a una ventana emergente para mostrarlo y ahí sí me está mostrando los datos como deben ser.
El encoding de la base de datos es LATIN1

Mi idea original es la siguiente:

Si el resultado del query es solo una fila, no veo la necesidad de abrir la ventana emergente y así paso el resultado tal cual como viene a la forma (JQuery). El lío es acá ya que no me retorna el nombre.

Si el resultado del query son varias filas, abro la ventana emergente (SIN JQUERY), muestro el resultado obtenido del query en una forma con checkbox en cada fila para pasar el que se quiere a la ventana papá. Esto me funciona perfecto. Pero acá es donde me quedo como entre loco y bobo tratando de deducir el por qué en la ventana emergente sí muestra bien los datos teniendo en cuenta que con el console.log veo que el nombre lo retorna nulo....

Última edición por augusto_jaramil; 26/02/2012 a las 13:42
  #2 (permalink)  
Antiguo 26/02/2012, 14:09
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Respuesta: Problemas con encodig

Esta es la respuesta recibida del servidor


Código:
[15:04:40.450] ({success:true,
                             msg: "SELECT maestro.cedula, trim(maestro.nombre) as nombre FROM maestro WHERE maestro.cedula = '1033704912' AND estado = 'A' ORDER BY 2 ",
                            data:[{cedula:"1033704912", nombre:null}]}) @ http://sistemas.com/informaw/js/ret_multiple.js:143

Etiquetas: jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:09.