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

ayudar pasar variable por GET

Estas en el tema de ayudar pasar variable por GET en el foro de Frameworks JS en Foros del Web. hola bueno debido a un problema de pasar variables por GET y hacer history.back(); me he sentido en la obligacion de usar AJAX para solucionar ...
  #1 (permalink)  
Antiguo 05/06/2009, 16:28
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
ayudar pasar variable por GET

hola bueno debido a un problema de pasar variables por GET y hacer history.back(); me he sentido en la obligacion de usar AJAX para solucionar mi problema , por consejos de otros foreros... y la verdad en ajax estoy confundido

tengo una hipervinculo donde deseo pasar un ID (solo eso )

Código PHP:
<div id="mensajes">
<?php

echo '<a href="javascript:UpdateFlagMensaje(\'mensajes_update_flag.php\',\''.$row['contacto_id'].'\',\'\',\'mensajes\');"> vinculo </a>';

?>
</div>
eee... bueno estos vinculos representado por un dibujo que muestra el estado de un mensaje (leido o no leido) se generan en una tabla por fila (registros) bueno y esta tabla esta envuelta en un <div id="mensajes"> donde supongo saldra el resultado (no se si esta mal que envuelva la tabla de registros)

Mi intencion es que al hacerle click al vinculo se cambie el estado del mensaje. Segun un tutorial que segui esta funcion ajax pasa parametros :UpdateFlagMensaje(pagina.php,eldatoIDGET,eldatoID POST,div);

Y esto es lo que pongo en el ajax:

Código:
function nuevoAjax(){
var xmlhttp=false;
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function UpdateFlagMensaje(_pagina,valorget,valorpost,capa){
	ajax=objetus(_pagina);
    if(valorpost!=""){
        ajax.open("POST", _pagina+"?"+valorget,true);
    } else {
        ajax.open("GET", _pagina+"?"+valorget,true);
    }
    ajax.onreadystatechange=function() {
        if (ajax.readyState==1){
            document.getElementById(capa).innerHTML = 
				"<img src='loadingcircle.gif' align='center'> Aguarde por favor...";
        }
        if (ajax.readyState==4) {
            if(ajax.status==200)
            {document.getElementById(capa).innerHTML = ajax.responseText;}
            else if(ajax.status==404)
            {
                capa.innerHTML = "La direccion no existe";
            }
            else
            {
                capa.innerHTML = "Error: ".ajax.status;
            }
        }
    }
    if(valorpost!=""){
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        ajax.send("msID="+valorget);
    } else {
        ajax.send(null);
    }
}

Bueno y esto es la pagina php que hace la actualizacion de estado:

Código PHP:
<?php

//ACTUALIZAR ESTADO DE MENSAJE SI SE DESEA
$c_cont $_GET['msID'];
$up_cont="UPDATE contacto SET contacto_flag_estado='0' where contacto_id='".$c_cont."'";
mysql_query($up_cont,$c);

?>
Pues al momento de presionar el hipervinculo ... me sale el error javascript : "Object Expected"


Por favor alguien puede indicarme los errores o como solucionar este problema?? espero su ayuda, gracias!
__________________
Quitenme la vida pero no la bebida.

Última edición por cesarpunk; 05/06/2009 a las 16:58
  #2 (permalink)  
Antiguo 05/06/2009, 17:54
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: ayudar pasar variable por GET

Bueno lo logre.... pude actualizar ese campo con ajax (bueno con otra funcion ajax)

Pero el problema es que en cada fila de mi tabla tengo esto:


Código PHP:
<?php

echo '<div id="capaContenedora"><a href="javascript:UPDmsg(\'mensaje_update_flag.php?campo1='.$row['contacto_id'].'\',\'capaContenedora\',\'\',\'get\');"><img src="imagen.gif" width="14" height="13" /></a></div>';

?>
y le envio a esta funcion


Código:
/*
*Esta libreria es una libreria AJAX creada por Javier Mellado con la inestimable
*colaboracion de Beatriz Gonzalez.
*descargada del portal AJAX Hispano http://www.ajaxhispano.com
*contacto [email protected]
*
*Puede ser utilizada, pasada, modificada pero no olvides mantener 
*el espiritu del software libre y respeta GNU-GPL
*/

function creaAjax(){
  var objetoAjax=false;
  try {
   /*Para navegadores distintos a internet explorer*/
   objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
     /*Para explorer*/
     objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (E) {
     objetoAjax = false;
   }
  }

  if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
   objetoAjax = new XMLHttpRequest();
  }
  return objetoAjax;
}

 function UPDmsg (url,capa,valores,metodo)
{
   var ajax=creaAjax();
   var capaContenedora = document.getElementById(capa);

/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
 if(metodo.toUpperCase()=='POST'){
        document.write="hola pepe";
    ajax.open ('POST', url, true);
    ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
                 capaContenedora.innerHTML="Cargando.......";
         }
         else if (ajax.readyState==4){
            if(ajax.status==200)
            {
                 document.getElementById(capa).innerHTML=ajax.responseText; 
            }
            else if(ajax.status==404)
                 {

                     capaContenedora.innerHTML = "La direccion existe";
                 }
             else
                 {
                     capaContenedora.innerHTML = "Error: ".ajax.status;
                 }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(valores);
    return;
}
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
if (metodo.toUpperCase()=='GET'){

    ajax.open ('GET', url, true);
    ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
                 capaContenedora.innerHTML='<img src="images/sending.gif" width="10" height="10" align="absmiddle">';
         }
         else if (ajax.readyState==4){
            if(ajax.status==200){ 
                 document.getElementById(capa).innerHTML=ajax.responseText; 
            }
            else if(ajax.status==404)
                 {

                     capaContenedora.innerHTML = "La direccion existe";
                 }
                 else
                 {
                     capaContenedora.innerHTML = "Error: ".ajax.status;
                 }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(null);
    return
}
}
Eso significa que en cada fila tiene un <div id="capaContenedora"> que se repite osea que el resultado siempre me sale en la primera fila lo que yo deseo es que en cada fila se muestre el resultado .... como haria para que el id de esa capa cambie de nombre dinamicamente y este a la vez mande ese nombre al ajax????? porfavor necesito su ayuda... e slo unico que me falta
__________________
Quitenme la vida pero no la bebida.
  #3 (permalink)  
Antiguo 15/05/2010, 12:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: ayudar pasar variable por GET

Hola necesito saber por que? al usar Firefox cuando paso el nombre del div como variable no funciona osea asi:

UpdateFlagMensaje(_pagina,valorget,valorpost,capa) {.....
document.getElementById(capa).innerHTML = .....

en cambio si funciona cuando pongo el nombre de la capa entre comillas simples ejemplo 'capa'

document.getElementById('capa').innerHTML
y el div id="capa">

si pudieran ayudarme se los agradeceria mucho ya que llevo dias tratando de solucionarlo.

Última edición por gastonchiquillo; 15/05/2010 a las 12:16 Razón: quiero recibir por correo electronico las respuestas
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 18:41.