cómo recojo una variable enviada con get
Ejemplo:
ventana1.htm?encontrada=true
Cómo recojo encontrada en ventana1?
| ||||
Gracias, caricatos. En realidad creo que sí necesitaría un ejemplo. Es que no tenía el placer de conocer a don split. Él, entonces, separa según lo que aparece entre paréntesis, correcto? Otra duda, esa variable, se guarda aunque yo actualice la página? Es que quiero mandar más variables desde otras páginas. Te explico, Quiero hacer una especie de Dónde está Wally... o la búsqueda de un personaje escondido en el sitio. Cada vez que se encuentre se hace clic y envía una variable de personaje1=visible a la ventana 1.htm. En la ventana uno, recojo las variables y cambio el estado de los monos encontrados (de opaco a claro), cuento si ya encontraron todos y si lo hicieron, se despliega un formulario. Funcinará si lo hago por get, no? |
| ||||
Hola otra vez: Voy a poner un ejemplo sencillo de recogida de variables: var entradas = location.search.substring(1).split("&"); Para una dirección del tipo: www.tudominio.com/index.html?var1=valor1&var2=valor2 el substring recoge lo que hay en azul, y el split deja finalmente entradas como un array así: var entradas = ["var1=valor1", "var2=valor2"]; A partir de aquí tienes que recorrer el array y hacer las asignaciones, que pueden hacerse con un eval... for (dato in entradas) eval("'" + dato.split("=")[0] + ' = \"' + dato.split("=")[1] + '\"'); Supongo que si no me equivoqué en el uso de las comillas o la sintaxis, puedes usar el código sin problemas... También hay una FAQ que puso KarlanKas (¡Hola !) sobre el tema: http://www.forosdelweb.com/showpost....&postcount=184 La idea que tienes en mente parece muy interesante... espero que nos vayas poniendo al día de tus progresos Lo de guardar las variables no creo que te sirva ya que las sucesivas llamadas las iría refrescando... pero si son valores añadidos en la URL original te podría servir. tal vez te pueda servir el uso del sistema de marcos más o menos así: window.frames["laVentana"].document.varx = "valorx"; Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
Me falta el cuento de mantener las variables, pero por lo menos ya logro enviarlas y cambiar el estado de las imágenes. Cada vez que se hace clic en una mosca se envia por get la variable: vmosca1=true En otra, vmosca2=true y así sucesivamente. Las moscas están repartidas por el sitio.
Código:
Voy a probar el cuento de enviar las variables a un marco de la ventana.var vmosca1; var vmosca2; var vmosca3; var vmosca4; var vmosca5; var enviado=location.href.split("?"); var igualdades=enviado[1].split("&"); for(a=0;a<igualdades.length;a++){ igualdades[a]=igualdades[a].split("+").join(" "); var valores=igualdades[a].split("="); eval(valores[0]+"='"+valores[1]+"'"); } var global; function moscas(){ if(vmosca1=="true"){ mosca1.src="img/mosca.gif"; global++; } if(vmosca2=="true"){ mosca2.src="img/mosca.gif"; global++; } if(vmosca3=="true"){ mosca3.src="img/mosca.gif"; global+1; } if(vmosca4=="true"){ mosca4.src="img/mosca.gif"; global++; } if(vmosca5=="true"){ mosca5.src="img/mosca.gif"; global++; } if(global>=5){ window.open("ventana1.htm","ventana2","toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,status=no,width=300,height=340,top=100,left=100")} } Ojalá me resulte Caricatos: Muuuchas gracias, es un placer encontrarte después de haberte conocido en el foro de las hojas de estilo. Verás del css me vi obligada a complementar concoimientos con javascript. |
| ||||
Hola otra vez: Lo de poner "true" puede dar el mismo resultado que cualquier otra cadena... con el clásico "0"/"1" te ahorras unas letras... te lo digo porque sin las comillas es un valor booleano y con las comillas solo texto... Tal vez te interese poner en el action algo así como location.href para que se "acumulen" los valores, pero el tratamiento sería un pelín complejo ya que podría repetirse los "?" en la URL... Se me ocurre que para simplificar podrías usar una sola cadena y que sea el único parámetro que se envíe... el tratamiento get tendría que ser el mismo, pero si el identificador de cada mosca fuese solo una letra o dígito, tan solo tendrías que recorrer la cadena y mostrar los elementos que conicidan con cada letra de esa cadena/parámetro.... Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
es que si la guardo en la URL al final, igual al mandar otra mosca, me limpiaría de nuevo la URL... Yo creo que voy a optar por cookies. Total se borran cuando se acaba la sesión, no? |
| ||||
Tal vez algo así me ayude Encontré en otro post sobre frames y variables una propuesta que era algo así como
Código:
Servirá tratar de adaptarlo, no ? <script> function mandadatos(){ d1 = window.c.user.value; d2 = window.c.password.value; d3 = window.c.fecha_actual.value; d4 = window.c.fecha_descativa.value; d5 = window.d.perfil.value; window.location = "alta.php?user="+d1+"&password="+d2+"&fecha_actual="+d3+"&fecha_descativa="+d4+"&perfil="+d5; } </script> Ya me imaginaba que esto de colocar "true" era muy imbecilillo. Lo corregiré. Gracias! |
| ||||
Hola otra vez: Preparé un ejemplo de la manera que te comenté anteriormente: http://www.pepemolina.com/pruebas/prueba152.html Se pasan los valores con el método get y se procesa la entrada para descubrir las imágenes... El código de la página completa es este:
Código:
Saludos <html> <head> <style> img {visibility: hidden;} h1 {text-align: center; color: blue; background-color: #eeeeee;} #a {position: absolute; top: 300px; left: 100px; visibility: visible; cursor: pointer;} #b {position: absolute; top: 150px; left: 100px; visibility: visible; cursor: pointer;} #c {position: absolute; top: 300px; left: 200px; visibility: visible; cursor: pointer;} #d {position: absolute; top: 300px; left: 400px; visibility: visible; cursor: pointer;} </style> <script language="JavaScript"> <!-- var actuales = ""; function inicio() { var URL = location.href.split("?"); if (URL.length > 1) { datos = URL[1].split("&"); for (lectura in datos) { actual = datos[lectura].split("="); switch (actual[0]) { case "mostrados": actuales = actual[1]; break; otherwise: break; } } } with (document.forms["dibujos"]) { action = URL[0]; mostrados.value = actuales; if (actuales != "") for (var i = 0, max = actuales.length; i < max; i ++) document.images[actuales.charAt(i)].style.visibility = "visible"; } } function chequeo(yo) { if (document.images[yo].style.visibility != "visible") { with(document.forms["dibujos"]) { mostrados.value += yo; submit(); } } else alert(document.images[yo].style.visibility); } //--> </script> </head> <body onload="inicio()"> <h1> Buscando emoticones </h1> <form name="dibujos" method="get" action=""> <input type="hidden" name="mostrados" value=""> <div id="a" onclick="chequeo(this.id);" > <img name="a" src="miemoticon.gif" /> </div> <div id="b" onclick="chequeo(this.id);" > <img name="b" src="miemoticon.gif" /> </div> <div id="c" onclick="chequeo(this.id);" > <img name="c" src="miemoticon.gif" /> </div> <div id="d" onclick="chequeo(this.id);" > <img name="d" src="miemoticon.gif" /> </div> </form> </body> </html>
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
Por el momento lo hice con cookies Ante la premura del tiempo, lo hice con asp y cookies, pero eso no quiere decir que no lo intente por javascript. Por lógica debería ir por ahí la solución (por la ejecución por le lado del usuario). Estoy tratando de entender y aplicar tu código. Muchas gracias! Ahí va mi papiro de asp
Código:
En cada imagen sólo coloqué<% Dim vmosca1 Dim vmosca2 Dim vmosca3 Dim vmosca4 Dim vmosca5 Dim global Dim cadena vmosca1=Request.QueryString("vmosca1") vmosca2=Request.QueryString("vmosca2") vmosca3=Request.QueryString("vmosca3") vmosca4=Request.QueryString("vmosca4") vmosca5=Request.QueryString("vmosca5") if vmosca1="visible" then response.cookies("vmosca1")="visible" end if if vmosca2="visible" then response.cookies("vmosca2")="visible" end if if vmosca3="visible" then response.cookies("vmosca3")="visible" end if if vmosca4="visible" then response.cookies("vmosca4")="visible" end if if vmosca5="visible" then response.cookies("vmosca5")="visible" end if vmosca1=Request.cookies("vmosca1") vmosca2=Request.cookies("vmosca2") vmosca3=Request.cookies("vmosca3") vmosca4=Request.cookies("vmosca4") vmosca5=Request.cookies("vmosca5") %>
Código:
Seguiré en la lucha del javscript. <% if vmosca1="visible" then global = global+1 %> <img src="img/mosca.gif" name="mosca1" width="71" height="65" id="mosca1"> <% else %> <img src="img/moscasn.gif" name="mosca1" width="71" height="65" id="mosca1"> <% end if %> |