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

No obtengo respuesta desde firefox y si desde ie8

Estas en el tema de No obtengo respuesta desde firefox y si desde ie8 en el foro de Frameworks JS en Foros del Web. Buenas depues de dejarme las horas muertas, ya no se por donde salir tengo un js como este Código: function nuevoAjax(){ var xmlhttp = null; ...
  #1 (permalink)  
Antiguo 07/12/2009, 11:36
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
No obtengo respuesta desde firefox y si desde ie8

Buenas depues de dejarme las horas muertas, ya no se por donde salir
tengo un js como este

Código:
function nuevoAjax(){
    var  xmlhttp = null;
	
    try{
        xmlhttp = new ActiveXObject("Msxml12.XMLHTTP");
    } catch (e) {
        try{
            xmlhttp = ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            xmlhttp = false;
        }
    }
	
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;

}

function upAjaxGet(url){
    ajax = nuevoAjax();
    ajax.open("GET", url);
    ajax.onreadystatechange = function(){
          if (ajax.readyState == 4){
		data  = ajax.responseText;
		alert(data);
    };
    ajax.send();	
	}
}



function cargaLista(){
    req = null;
    req = upAjaxGet("valida.php");
}
Hasta ahi por lo que he conseguido leer tendria que funcionar pero ni muchos menos. IE8 si me da respuesta pero firefox me muestra un alert vacio.

este el codigo php

Código:
<?php 

$salida = array();
$conn = mysql_connect('localhost','nombre','pass');
mysql_query("SET NAMES 'utf8'");
if (mysql_select_db('qes993',$conn)) {
    $sql = "SELECT * FROM usuarios";
    $result = mysql_query($sql,$conn);
    if (mysql_num_rows($result) > 0) {
        $flg_tabla_dsc_inicial_r = true;
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $salida[$row['idusuario']]= $row['usuario'];
        }
    }
}

print_r(json_encode($salida));
?>
Alguien sabe por que??

Última edición por blue_scape; 07/12/2009 a las 11:42
  #2 (permalink)  
Antiguo 07/12/2009, 12:13
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Cambia esto

var xmlhttp = false;

Y esto

if (ajax.readyState == 4){
if(ajax.status==200){
data = ajax.responseText;
alert(data);
}
}
ajax.send(null);
}

No le pasas nada por GET?? Es solo xa abrir no?
  #3 (permalink)  
Antiguo 07/12/2009, 12:22
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: No obtengo respuesta desde firefox y si desde ie8

tu codigo correcto debe ser:

Código javascript:
Ver original
  1. function Ajax(){
  2.     var xmlhttp = false
  3.     if (window.XMLHttpRequest) {// Si es IE7, Mozilla, Safari etc
  4.         xmlhttp = new XMLHttpRequest();
  5.     } else if (window.ActiveXObject){ // pero si es IE6
  6.         try {
  7.             xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8.         }
  9.         catch (e){ // en caso que sea una versión más antigua
  10.             try{
  11.                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  12.             }catch (e){}
  13.         }
  14.     }
  15.     if(!xmlhttp){
  16.         alert("Error: Este navegador no soporte al objeto XMLHTTP");
  17.     }
  18.     return xmlhttp;
  19. }
  20.  
  21. function upAjaxGet(url){
  22.  var ajax=Ajax();
  23.  ajax.onreadystatechange=function(){
  24.   if(ajax.readyState==4){
  25.    alert(ajax.responseText);
  26.   }
  27.  }
  28.  ajax.open("GET", url, true);
  29.  ajax.send(null);
  30. }

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 07/12/2009, 13:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Gracias chicos por vuestra respuesta. Pero sigo teniendo el mismo problema. El caso es que cuando utilizo firebug me va de perlas, hace su recorrido y cuando llega a alert(data); muesta data!!!. Pero sin firebug nada de nada. No mando nada por get es solo para abrir.
  #5 (permalink)  
Antiguo 07/12/2009, 13:19
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: No obtengo respuesta desde firefox y si desde ie8

con el ultimo codigo que te postie sigue fallando......... que raro eh.....

postea tu codigo completo para ver como llamas al metodo y eso........

quizas el problema esta en validar.php

te muestra bien el print_r() ???

espero.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 07/12/2009, 13:21
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Agregale el firebug lite! buscalo en google, y ponelo, son 2 lineas nomas!!
La salida del PHP la codificas a JSON? No deberias usar eval() para recibir los datos????

asi: eval("(("+ajax.responseText+"))");
  #7 (permalink)  
Antiguo 07/12/2009, 14:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Os agrego el html

Código:
<script type="text/javascript" src="js_prueba.js"></script>
<title>Prueba de Ajax</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
    <label>LLAMADA A JSON -&gt;</label>
    <input type="submit" name="btnJson" id="btnJson" value="Enviar" onclick="cargaLista();" />
</form>
</body>
</html>
el resto del encabezado no me lo deja meter el foro.

Hombre para mostar el texto retornado no se lo de eval... Probare igualmente.
  #8 (permalink)  
Antiguo 07/12/2009, 14:32
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Código PHP:
function nuevoAjax(){
    var  
xmlhttp false;
    
    try{
        
xmlhttp = new ActiveXObject("Msxml12.XMLHTTP");
    } catch (
e) {
        try{
            
xmlhttp ActiveXObject("Microsoft.XMLHTTP");
        } catch (
e){
            
xmlhttp false;
        }
    }
    
    if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
        
xmlhttp = new XMLHttpRequest();
    }
    return 
xmlhttp;
}

function 
upAjaxGet(url){
    
ajax nuevoAjax();
    
ajax.open("GET"url);
    
ajax.onreadystatechange = function(){
          if (
ajax.readyState == 4){
                if(
ajax.status==200){
        
data  = eval("(("+ajax.responseText+"))");
                
/* si estas devolviendo un objeto deberias 
                    usar la sintaxis para ellos, osea:
                     data.[propiedad1]+data.[propiedad2] */
        
alert(data);
}
}
}
    
ajax.send(null);    

  #9 (permalink)  
Antiguo 07/12/2009, 14:48
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Busqueda Respuesta: No obtengo respuesta desde firefox y si desde ie8

No te sale por que recibes codigo json.... asi que el alert de tu codigo correcto debe ser:
Código javascript:
Ver original
  1. function Ajax(){
  2.     var xmlhttp = false
  3.     if (window.XMLHttpRequest) {// Si es IE7, Mozilla, Safari etc
  4.         xmlhttp = new XMLHttpRequest();
  5.     } else if (window.ActiveXObject){ // pero si es IE6
  6.         try {
  7.             xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8.         }
  9.         catch (e){ // en caso que sea una versión más antigua
  10.             try{
  11.                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  12.             }catch (e){}
  13.         }
  14.     }
  15.     if(!xmlhttp){
  16.         alert("Error: Este navegador no soporte al objeto XMLHTTP");
  17.     }
  18.     return xmlhttp;
  19. }
  20.  
  21. function upAjaxGet(url){
  22.  var ajax=Ajax();
  23.  ajax.onreadystatechange=function(){
  24.   if(ajax.readyState==4){
  25.    alert(eval("(("+ajax.responseText+"))"));
  26.   }
  27.  }
  28.  ajax.open("GET", url, true);
  29.  ajax.send(null);
  30. }

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 07/12/2009, 14:59
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Cita:
Iniciado por masterojitos Ver Mensaje
No te sale por que recibes codigo json.... asi que el alert de tu codigo correcto debe ser:
Código javascript:
Ver original
  1. function Ajax(){
  2.     var xmlhttp = false
  3.     if (window.XMLHttpRequest) {// Si es IE7, Mozilla, Safari etc
  4.         xmlhttp = new XMLHttpRequest();
  5.     } else if (window.ActiveXObject){ // pero si es IE6
  6.         try {
  7.             xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8.         }
  9.         catch (e){ // en caso que sea una versión más antigua
  10.             try{
  11.                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  12.             }catch (e){}
  13.         }
  14.     }
  15.     if(!xmlhttp){
  16.         alert("Error: Este navegador no soporte al objeto XMLHTTP");
  17.     }
  18.     return xmlhttp;
  19. }
  20.  
  21. function upAjaxGet(url){
  22.  var ajax=Ajax();
  23.  ajax.onreadystatechange=function(){
  24.   if(ajax.readyState==4){
  25.    alert(eval("(("+ajax.responseText+"))"));
  26.   }
  27.  }
  28.  ajax.open("GET", url, true);
  29.  ajax.send(null);
  30. }

suerte.
Che me parece que con esto no haces mucho eh... el eval lee/ejecutaun string o un codigo javascript. Por lo que despues deberias usar la sintaxis de objetos para poder llamar a las propiedades / metodos de cada objeto. En este caso seria un array en JSON, por como dije antes deberias usar esta sintaxis:

data=eval("(("+ajax.responseText+"))");

alert(data.[propiedad]);

Pero tu propiedad no la conoces, porque el id del vector asociativo es lo que traes de las bases de datos.... Me parece mas facil usar un vector secuencial y recorrerlo con un for...

Última edición por jackson666; 07/12/2009 a las 15:08
  #11 (permalink)  
Antiguo 07/12/2009, 15:41
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: No obtengo respuesta desde firefox y si desde ie8

che pero yo solo estoy resolviendo su problema.... el luego debe ser capas de lograr su cometido, ya que no ha explicado para que pasa el array $salida......

mientras, creo que queria mostrar un alert de lo que traia........ ^^

Dios os bendiga a toos.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #12 (permalink)  
Antiguo 07/12/2009, 17:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Ciertamente como comenta el amigo masterojitos ahora mismo solo quiero que me muestre el alert con lo que trae. Pero efectivamente luego pensaba recorrer el array asiciativo con un for in. Por si os sirve de ayuda este el alert que me muestra ie8.

---------------------------
Mensaje de página web
---------------------------
{"9":"lkjhlkjhlkjhskdj","10":"skdj","11":"sldkfjss kdj","12":"kjjhlkjhlkjhskdj","13":"skdj","14":"pep etotrskdj","15":"poeijjiejskdj","16":"poeijjiejgsk dj","17":"sjsjsskdj","18":"kuyuyuskdj","19":"holas kdj","20":"skdj","21":"josemafdezmtnezskdj","22":" dry martiniskdj","23":"skdj","24":"anto\u00f1ioskdj"," 25":"drymartiniskdj","26":"\u00d0\u00bf\u00d0\u00b 5\u00d1\u20ac\u00d1\u0081\u00d0\u00b8\u00d0\u00b4\ u00d1\u0081\u00d0skdj","27":"\u00c3\u0090\u00c2\u0 0ae\u00c3\u0090\u00c2\u00b6\u00c3\u0090\u00c2\u00b d\u00c3\u0090\u00c2skdj","28":"\u00c3\u0090\u00c2\ u00ae\u00c3\u0090\u00c2\u00b6\u00c3\u0090\u00c2\u0 0bd\u00c3\u0090\u00c2skdj","29":"65765skdj","30":" \u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u 043a\u0430\u043d\u0441\u043a\u0430\u044fskdj","31" :"drymartiniskdj","32":"drymartiniskdj","33":"co\u 00f1oskdj","34":"Josemaskdj","37":"skdj","36":"pep eskdj","38":"rrrskdj"}
---------------------------
Aceptar
---------------------------

Jaja si ya se que vaya desorden. Pues este es el mismo mensaje que me muestra firefox si hago debug con firebug. Pero sin firebug nada, ni alert en blanco, ni nada de nada, por cierto la consola de errores de firefox tampoco me tira nada y el log de apache idem.
Muchisimas gracias a los dos por responder.
  #13 (permalink)  
Antiguo 07/12/2009, 20:03
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Entonces no solucionaste nada??
Probaste con el codigo que te dije yo??
  #14 (permalink)  
Antiguo 08/12/2009, 03:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No obtengo respuesta desde firefox y si desde ie8

Nada de nada. Lo que voy hacer sera reinstalar firefox a ver...
  #15 (permalink)  
Antiguo 08/12/2009, 08:34
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: No obtengo respuesta desde firefox y si desde ie8

amigo pero cual es tu objetivo al pasar ese array, que deseas hacer en realidad ???????
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:34.