Foros del Web » Programando para Internet » Javascript »

recordar checkbox tildados

Estas en el tema de recordar checkbox tildados en el foro de Javascript en Foros del Web. hola gente, necesitaría (si es que existe) alguna funcion javascript que me permita recordar los checkbox tildados aunque se cambie de página..... Por si no ...
  #1 (permalink)  
Antiguo 20/06/2007, 08:35
Avatar de edu007ar  
Fecha de Ingreso: septiembre-2003
Ubicación: Buenos Aires
Mensajes: 118
Antigüedad: 21 años, 4 meses
Puntos: 0
recordar checkbox tildados al cambiar de pagina

hola gente, necesitaría (si es que existe) alguna funcion javascript que me permita recordar los checkbox tildados aunque se cambie de página.....

Por si no se entiende voy a explicar exactamente para qué lo necesito:
tengo un listado de 1200 jugadores paginados de a 100 y quería implementar una opción de COMPARAR JUGADORES, donde cada uno tendría un checkbox y abajo de todo un botón que me lleve a otra página con la variable en la url de los checkbox tildados (ej.: pagina2.asp?ids=1,5,8,150,1150)... el problema es que si alguien quiere comparar un jugador de la página 1 con otro de la página 7 el check que hayan tildado en la 1 ya no va a correr más en la 7..... en fin, no los quiero marear más........ supongo que mezclando javascript con cookies o algo así se podrá, pero la verdad es que yo no sé como hacerlo.........

Gracias.
Eduardo

Última edición por edu007ar; 21/06/2007 a las 11:22
  #2 (permalink)  
Antiguo 21/06/2007, 08:43
Avatar de edu007ar  
Fecha de Ingreso: septiembre-2003
Ubicación: Buenos Aires
Mensajes: 118
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: recordar checkbox tildados

hola... bueno no recibí respuesta pero ya lo pude solucionar, les paso la forma que encontré, combinando un poco de javascript, ajax y asp... así que no sé si lo querrán mover al foro de ajax....
de todas maneras como mucho de ajax no entiendo quizá se pueda depurar y mejorar bastante, pero así como está funciona...

pagina1.asp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript" type="text/javascript">
function handleHttpResponse() {
if (http.readyState == 4) {
if (http.status == 200) {
if (http.responseText.indexOf('invalid') == -1) {
//results = http.responseText.split(",");
//document.getElementById("campoMensaje").innerHTML = results[0];
document.getElementById("campoMensaje").innerHTML = http.responseText; //eliminar
enProceso = false;
}
}
}
}

function checkear(nombre) {
if (!enProceso && http) {
var valor = escape(document.getElementById(nombre).checked);
var url = "pagina3.asp?nombre="+ nombre +"&valor="+ valor;
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
enProceso = true;
http.send(null);
}
}

function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) { xmlhttp = false; }
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) { xmlhttp = false; }
}
return xmlhttp;
}

var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

</script>

</head>

<body>
<%for i = 1 to 10%>
<input name="chk<%=i%>" type="checkbox" id="chk<%=i%>" value="si" onchange="checkear('chk<%=i%>');" <%if instr(session("a"),"chk"&i&",")>0 then%>checked<%end if%>>
<%next%>
<a href="pagina2.asp">Pagina 2
</a><br>
<div id="campoMensaje"><%=session("a")%></div>
</body>
</html>



pagina2.asp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript" type="text/javascript">
function handleHttpResponse() {
if (http.readyState == 4) {
if (http.status == 200) {
if (http.responseText.indexOf('invalid') == -1) {
//results = http.responseText.split(",");
//document.getElementById("campoMensaje").innerHTML = results[0];
document.getElementById("campoMensaje").innerHTML = http.responseText; //eliminar
enProceso = false;
}
}
}
}

function checkear(nombre) {
if (!enProceso && http) {
var valor = escape(document.getElementById(nombre).checked);
var url = "pagina3.asp?nombre="+ nombre +"&valor="+ valor;
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
enProceso = true;
http.send(null);
}
}

function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) { xmlhttp = false; }
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) { xmlhttp = false; }
}
return xmlhttp;
}

var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

</script>

</head>

<body>
<%for i = 11 to 20%>
<input name="chk<%=i%>" type="checkbox" id="chk<%=i%>" value="si" onchange="checkear('chk<%=i%>');" <%if instr(session("a"),"chk"&i&",")>0 then%>checked<%end if%>>
<%next%>
<a href="pagina1.asp">Pagina 1 </a><br>
<div id="campoMensaje"><%=session("a")%></div>
</body>
</html>



pagina3.asp

<%'session("a")=""
nombre=request.querystring("nombre")
valor=request.querystring("valor")
yaEsta=false

if session("a")<>"" then '================================

activos=split(session("a"),",")
for i = 0 to ubound(activos)-1
temp=activos(i)
if temp=nombre and temp<>"" then
if valor="false" then
activos(i)=""
yaEsta=true
exit for
end if
end if
next

end if '================================================= =

if yaEsta=true then
session("a")=""
for i = 0 to ubound(activos)-1
temp=activos(i)
if temp<>"" then
session("a")=session("a")&temp&","
end if
next
else
if valor="true" then session("a")=session("a")&nombre&","
end if

response.write session("a")
%>



Espero que a alguno le sea de utilidad y se entienda para qué sirve..

Slds.
Eduardo
  #3 (permalink)  
Antiguo 21/06/2007, 08:46
Avatar de edu007ar  
Fecha de Ingreso: septiembre-2003
Ubicación: Buenos Aires
Mensajes: 118
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: recordar checkbox tildados

ah me olvidaba, el código ajax lo obtuve de la librería de códigos de www.soloasp.com.ar, el resto es propio.

Slds..
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 21:04.