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

Actualizar funcion getXMLHTTPRequest()

Estas en el tema de Actualizar funcion getXMLHTTPRequest() en el foro de Frameworks JS en Foros del Web. Tengo esta función definida: Ajax.js ===== function getXMLHTTPRequest() { var req; try { req = new XMLHttpRequest(); } catch(err1) { try { req = new ...
  #1 (permalink)  
Antiguo 09/11/2010, 18:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Pregunta Actualizar funcion getXMLHTTPRequest()

Tengo esta función definida:


Ajax.js
=====
function getXMLHTTPRequest() {
var req;
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}

Qué debo agregarle para actualizarlo?? pues no funciona con Firefox 3.6
Gracias.
  #2 (permalink)  
Antiguo 09/11/2010, 19:54
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años
Puntos: 43
Respuesta: Actualizar funcion getXMLHTTPRequest()

Intenta usar las funcion $.ajax de Jquery es compatible con varios navegadores.
  #3 (permalink)  
Antiguo 10/11/2010, 02:06
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Actualizar funcion getXMLHTTPRequest()

en teoria el codigo funciona correctamente en firefox -verificado. por tanto, no es asi donde esta el problema, debe estar en otra parte.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 10/11/2010, 12:09
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Sonrisa Respuesta: Actualizar funcion getXMLHTTPRequest()

No será la versión del Explorador??
  #5 (permalink)  
Antiguo 10/11/2010, 12:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Actualizar funcion getXMLHTTPRequest()

Cita:
Iniciado por zerokilled Ver Mensaje
en teoria el codigo funciona correctamente en firefox -verificado. por tanto, no es asi donde esta el problema, debe estar en otra parte.
El problema es el siguiente, al seleccionar una categoria aparece la imagen de espera debajo:

Luego aparecen las imagenes:

Al hacer click en cualquier imagen, la imagen de espera aparece pero no se quita:


Y la imagen se queda al cambiar de categoria o hacer cualquier cosa:


Este es el codigo:
Código PHP:
<script language="javascript" src="ajax.js"></script>
<script language="javascript">
http = getXMLHTTPRequest();

function generalista(n){
    var myurl = 'catalogo_paginar.php';
    myRand = parseInt(Math.random()*999999999999999);
    var idcategoria = form1.idcategoria.value;
    var modurl = myurl + "?idcategoria=" + idcategoria +"&n="+ n+ "&rand=" + myRand;
    http.open("GET", modurl, true);
    http.onreadystatechange = useHTTPResponse;
    http.send(null);
}
function useHTTPResponse() {
    if (http.readyState == 4) {
        if(http.status == 200) {
            var miTexto = http.responseText;
            document.getElementById('codigohtml').innerHTML = (miTexto);
        }
    } else {
        document.getElementById('codigohtml').innerHTML = '<img src="procesando.gif">';
    }
}
function verdetalle(idarticulo){
    var myurl = 'catalogo_detalle.php';
    myRand = parseInt(Math.random()*999999999999999);
    var modurl = myurl + "?idarticulo=" + idarticulo+ "&rand=" + myRand;
    http.open("GET", modurl, true);
    http.onreadystatechange = useHTTPResponse2;
    http.send(null);
}
function useHTTPResponse2() {
    if (http.readyState == 4) {
        if(http.status == 200) {
            var miTexto = http.responseText;
            document.getElementById('detallehtml').innerHTML = (miTexto);
        }
    } else {
        document.getElementById('detallehtml').innerHTML = '<img src="procesando.gif">';
    }
}
</script>
<?php
$cn 
mysql_connect("localhost","user","clave");
mysql_select_db("database");
$sql "SELECT * FROM categoria";
$rs mysql_query($sql);
$nCat mysql_num_rows($rs);
?>
<form name="form1" action="" method="get">
Categoria:
<select name="idcategoria" onChange="generalista(0)">
            <option value="0">Seleccione</option>
    <?php for($k=0;$k<$nCat;$k++){
        
$idcategoria mysql_result($rs,$k,"idcategoria");
        
$categoria mysql_result($rs,$k,"categoria");
    
?>
    <option value="<?php echo $idcategoria?>">
        <?php echo $categoria ?>
    </option>
    <?php ?>
</select>
<div id="codigohtml"></div>
<div id="detallehtml"></div>
</form>
Este es el primer archivo y aquí están las funciones que se utilizan. Espero puedas ayudarme.
  #6 (permalink)  
Antiguo 10/11/2010, 17:08
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Actualizar funcion getXMLHTTPRequest()

con el codigo presente no veo el problema. lo que entiendo es que al presionar una imagen se invoca la funcion verdetalle. de modo que la imagen de espera, y consecuentemente el contenido, debe cargar en div#detallehtml. pero segun las capturas y a juzgar por el orden del contenido, parece que tienes otros resultados. ¿no sera porque estas usando el mismo objeto XMLHttpRequest? es decir, en el codigo veo que utilizas http para ambos procesos: cargar las imagenes y los detalles.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 11/11/2010, 09:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Actualizar funcion getXMLHTTPRequest()

Cita:
Iniciado por zerokilled Ver Mensaje
con el codigo presente no veo el problema. lo que entiendo es que al presionar una imagen se invoca la funcion verdetalle. de modo que la imagen de espera, y consecuentemente el contenido, debe cargar en div#detallehtml. pero segun las capturas y a juzgar por el orden del contenido, parece que tienes otros resultados. ¿no sera porque estas usando el mismo objeto XMLHttpRequest? es decir, en el codigo veo que utilizas http para ambos procesos: cargar las imagenes y los detalles.
El código no lo hice yo. Me lo dieron para arreglar ese problema de la imagen de espera y luego arreglar el resto.

El codigo que mostré solamente hace el listado de las categorias.
Hay otro archivo catalogo_paginar.php que muestra las tres imagenes de los productos y otro archivo catalogo_detalle.php que muestra el detalle del producto seleccionado. Ambos tienen codigo php. Por eso mostré este donde está todo el codigo Ajax que se utiliza. Necesitas ver el resto?

El objeto XMLHttpRequest se invoca desde el inicio del codigo:

Código PHP:
<script language="javascript" src="ajax.js"></script>
<script language="javascript">
http = getXMLHTTPRequest(); 
Cambié la imagen del useHTTPResponse2() (procesando2.gif) y ahora al dar click en una categoria de la lista aparece esto:

Al dar click para ver el detalle sigue la misma imagen verde que no se va y al regresar a la lista por otro producto se queda la otra imagen:

Un poco tirado de los pelos...!! Qué puede ser??
  #8 (permalink)  
Antiguo 11/11/2010, 10:01
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años
Puntos: 43
Respuesta: Actualizar funcion getXMLHTTPRequest()

Lo podemos ver online?
Sin codigo no se puede hacer nada.
  #9 (permalink)  
Antiguo 11/11/2010, 10:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Actualizar funcion getXMLHTTPRequest()

Cita:
Iniciado por chicohot20 Ver Mensaje
Lo podemos ver online?
Sin codigo no se puede hacer nada.
Está en un localhost. No está en internet.
Cómo hago?
  #10 (permalink)  
Antiguo 11/11/2010, 10:52
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Actualizar funcion getXMLHTTPRequest()

lo unico que me lleva a pensar es que catalogo_paginar.php devuelve en la respuesta el codigo de la imagen. sospecho eso porque en las funciones useHTTPResponse estas usando el operador asignar a innerHTML. distinto fuera si tuvieras el operador concatenar y asignar (+=) el cual deberia producir el resultado que estas obteniendo pero no es tu caso. revisa el contenido devuelto por php.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 11/11/2010, 11:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Actualizar funcion getXMLHTTPRequest()

Cita:
Iniciado por zerokilled Ver Mensaje
lo unico que me lleva a pensar es que catalogo_paginar.php devuelve en la respuesta el codigo de la imagen. sospecho eso porque en las funciones useHTTPResponse estas usando el operador asignar a innerHTML. distinto fuera si tuvieras el operador concatenar y asignar (+=) el cual deberia producir el resultado que estas obteniendo pero no es tu caso. revisa el contenido devuelto por php.
Catalogo_paginar.php:
Código PHP:
<?php
$cn 
mysql_connect("localhost","user","clave");
mysql_select_db("database");
$idcategoria $_GET["idcategoria"];
$n $_GET["n"];
if(
$n<0){$n=0;}
$sql "SELECT * FROM articulo WHERE idcategoria= $idcategoria LIMIT $n,3";
$rs mysql_query($sql);
$nArt mysql_num_rows($rs);
if(
$nArt){
?>
<table border='0' cellspacing='0' cellpadding='0'>
<tr>
    <td> <a onclick="generalista(<?php echo $n-3 ?>)"><img src="left.gif" /></a></td>
        <?php for($i=0;$i<$nArt;$i++){
            
$foto "fotos/p".mysql_result($rs,$i,"foto").".jpg"
            
$idarticulo mysql_result($rs,$i,"idarticulo");
            
?>
            <td width='150'> 
            <a onclick="verdetalle(<?php echo $idarticulo?>)">
                <img src="<?php echo $foto?>" >
            </a>
            </td>
        <?php ?>
    <td> <a onclick="generalista(<?php echo $n+3 ?>)"><img src="right.gif" /></a></td>
<tr>
</table>
<?php }else{
    echo 
"No hay articulos";
}
?>
catalogo_detalle.php:
Código PHP:
<?php
$cn 
mysql_connect("localhost","user","clave");
mysql_select_db("database");
$idarticulo $_GET["idarticulo"];
$sql "SELECT * FROM articulo WHERE idarticulo=$idarticulo";
$rs mysql_query($sql);
?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><?php  echo mysql_result($rs,0,"titulo"); ?></td>
    <td rowspan="3">
        <?php  $foto "fotos/g".mysql_result($rs,0,"foto").".jpg"?>
        <img src="<?php echo $foto?>">
    </td>
  </tr>
  <tr>
    <td><?php echo mysql_result($rs,0,"descripcion"); ?></td>
  </tr>
  <tr>
    <td>Precio US$ <?php echo mysql_result($rs,0,"precio"); ?></td>
  </tr>
    <tr>
    <td>Fecha Ingreso:
     <?php $fecmysql_result($rs,0,"fecha");
        
$aa=substr($fec,0,4);
        
$mm=substr($fec,5,2);
        
$dd=substr($fec,8,2);       
        echo 
$dd;
        echo 
"/";
        echo 
$mm;
        echo 
"/";       
        echo 
$aa;
     
?></td>
  </tr>
</table>
En catalogo_paginar hay un onlick que llama a la función generalista() pero no creo que ese sea el problema.

Etiquetas: ajax, funcion
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 16:06.