Foros del Web » Programando para Internet » Javascript »

Habilitar o deshabilitar tablas que se generan mediante consulta

Estas en el tema de Habilitar o deshabilitar tablas que se generan mediante consulta en el foro de Javascript en Foros del Web. este es el problema, he creado esta semi-funcion, donde en ves de utilizar el recordset para paginar, lo hago mediante arreglos , los cuales generan ...
  #1 (permalink)  
Antiguo 07/03/2007, 02:28
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Habilitar o deshabilitar tablas que se generan mediante consulta

este es el problema, he creado esta semi-funcion, donde en ves de utilizar el recordset para paginar, lo hago mediante arreglos, los cuales generan las tablas que se usaran en vista de usuario, ahora el detalle es que... pues la verdad no se casi absolutamente nada... por no querer decir que no se nada de nada jajajja... de javascript, pudieran por favor, ayudarme a esconder las tablas??

segun a lo que he mirado aki en el foro, se puede hacer algo como esto
<script language="javascript">
function hab_des(cual)
document.getElementById('cual').disabled=true;
</script>

pero realmente no se como llamarlo

Aki esta el codigo
Código:
        DIM matriz1()'Matriculas
        DIM matriz2()'Indexs
        DIM matriz3()    'periodos
        
        set rec = cxn.execute("select count(*) from tablilla where activo=1;")
        cuantos=rec(0)
        response.write "Registros: "&cuantos&"<br/>"
        
        REDIM matriz1(cuantos)'campo1
        REDIM matriz2(cuantos)'campo2
        REDIM matriz3(cuantos)'campo3

        sql="SELECT campo1, campo2, campo3 FROM tablilla where activo=1;"
        RS.Open sql, cxn
        cont=0
        while RS.EOF=FALSE
            matriz1(cont)=RS("campo1").value
            matriz2(cont)=RS("campo2").value
            matriz3(cont)=RS("campo3").value
            RS.movenext
            cont=cont+1
        wend
        RS.close

        'CREARA LAS PAGINAS QUE SE USARAN
        %>
        <table><tr>    
        <%
        For lk=0 to CuantasPaginas
        %>
        <th><a onclick="hab_des()"><%=lk%></a></th>
        <%
        next
        %>
        </tr></table>
        <%
        'CREARA LAS TABLAS DE MUESTRAS
        for kl=0 to CuantasPaginas%>
        <div class="story">
        <table id="tabla<%=kl%>">
        <tr><th>#</th><th>Campo1</th><th>Campo2</th><th>Campo3</th><th>Cuanto Pagara</th></tr>
        <%for kll=0 to CuantosDespliegue-1
        if matriz1(klll)<>"" then
        %>
            <tr><th><%=consecutivo%></th><td><%=matriz1(klll)%></td><td><%=matriz2(klll)%></td><td><%=matriz3(klll)%></td><td><%=matriz3(klll)*2000%></td></tr>
        <%
            consecutivo=consecutivo+1
            klll=klll+1
        else
            kll=CuantosDespliegue+1
            kl=CuantasPaginas+1
        end if
        next%>
        </table></div>
        <%next
        consecutivo=""
  #2 (permalink)  
Antiguo 07/03/2007, 04:57
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: Habilitar o deshabilitar tablas que se generan mediante consulta

document.getElementById('cual').style.display = "none";
document.getElementById('cual').style.display = ""; // mostrarla

document.getElementById('cual').style.visibility = hidden";
document.getElementById('cual').style.visibility = "visible";

La diferencia es que con visibility, el elemento sigue ocupando su espacio.

Salu2
  #3 (permalink)  
Antiguo 07/03/2007, 09:51
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Re: Habilitar o deshabilitar tablas que se generan mediante consulta

muy bien, esas propiedades son las que se ocupaban, pero MikiBroki, el detalle perciste..
en esta seccion mira..

en el onclick, como lo llamo, asi esta bien?, o como seria el parametro para llamar:
<th><a onclick="hab_des()"><%=lk%></a></th>

tambien hay que recordar que estoy usando una variable continua, de esta forma:

tabla1, tabla2.....

es incremental al formarse las tablas por los arreglos
'CREARA LAS TABLAS DE MUESTRAS
for kl=0 to CuantasPaginas%>
<div class="story">
<table id="tabla<%=kl%>">


y con tu aportacion, la funcion ya toma forma, pero disculpa mi ignoracion en la llamada de javascript.

podrias ilustrarme con un ejemplo?
  #4 (permalink)  
Antiguo 07/03/2007, 10:06
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: Habilitar o deshabilitar tablas que se generan mediante consulta

Por si acaso te hayas liado con la estructura de la página:

Código:
<html>

    <head>
        <script language="javascript">
            function hab_des(cual)
           {
                // o "style.visibility" según te convenga
                document.getElementById('cual').style.display = "none";
           }
        </script>
     </head>

    <body>
        ...
    </body>

</html>
.. y para la tabla al hacer click en en la celda (fíjate que intentabas pasar sólo el índice, pero forma parte de 'tabla'):

Código:
...
<th onclick="hab_des(tabla'<%=lk%>');">TABLA Nº <%=lk%</th>
...
Un saludo
  #5 (permalink)  
Antiguo 07/03/2007, 10:49
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Re: Habilitar o deshabilitar tablas que se generan mediante consulta

MikiBroki

el script
<script language="javascript">
function hab_des(cual)
{
document.getElementById('cual').style.visibility=" visible";
}
</script>

lo del boton nada mas es por aspecto
<th><input type="button" onclick="hab_des(tabla<%=lk%>);" value="<%=lk%>" /></th>

Inicializo las tablas para que no se miren
<table id="tabla<%=kl+1%>" style="visibility:hidden">

pero al llamar la funcion no trabaja

este es el codigo resultante al mirar la pagina
El menu para llamar la pagina:
<table><tr>
<th><input type="button" onclick="hab_des(tabla1);" value="1" /></th>
</tr><table>

y la tabla:
<div class="story1" id="Layer1">
<table id="tabla1" style="visibility:hidden">
<tr><th>#</th><th>Matriculas</th><th>Indez</th><th>Periodos</th><th>Monto a Pagar</th></tr>
<tr><th>1</th><td>6819744</td><td>1</td><td>01</td><td>2000</td></tr>
<tr><th>2</th><td>6819708</td><td>6</td><td>01</td><td>2000</td></tr>
<tr><th>3</th><td>5823294</td><td>7</td><td>03</td><td>6000</td></tr>
</table></div>

alguna observacion?
  #6 (permalink)  
Antiguo 07/03/2007, 17:11
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Re: Habilitar o deshabilitar tablas que se generan mediante consulta

ya quedo amigos, por si le sirve a alguien el codigo

este es el script que permite, esconder/mostrar las tablas
va en el head
Código:
<script LANGUAGE="javascript">
var capa
agregue esta variable, para poder esconder la tabla anterior
var antes

function cambio(idCapa){
 if (document.all) capa = eval(idCapa + ".style");
 if (document.getElementById) capa = eval('document.getElementById("' + idCapa + '").style');

 if ((capa.visibility == "hidden") || (capa.visibility == "hide"))
     {capa.visibility="visible" ;
    capa.display="";
    }
    else
    {capa.visibility="hidden" ;
        capa.display="none";}

y este pequeño "IF", para que realize el proceso, jajaja
if (antes==null)
    {antes=capa;}
    else    
    {antes.visibility="hidden" ; antes.display="none"; antes=capa;}

}
//-->
</script>
y este es el codigo de las tablas mediante arreglos
Código:
<%
DIM matriz1()'Matriculas
DIM matriz2()'Indexs
DIM matriz3()    'periodos

cxn.open "tu base de datos a utilizar"

'recordemos que simplemente es para mostrarnos la cantidad de registros
'dada una condicion
set rec = cxn.execute("select count(*) from le where status=1;")
tomo el valor
cuantos=rec(0)

redimensiono los arreglos a la cantidad de registros, asi no tengo que
utilizar PRESERVE, de esta manera utilizara el espacio requerido        
REDIM matriz1(cuantos)'Campo1
REDIM matriz2(cuantos)'Campo2
REDIM matriz3(cuantos)'Campo3

'hago mi consulta normal, seleccionando que quiero mirar
sql="SELECT campo1, campo2, campo3 FROM tabla where status=1;"

'executo
RS.Open sql, cxn

'inicializo el contador para los arreglos
'importante inicalizarlo en 0 para que no salga del intervalo
cont=0
while RS.EOF=FALSE
    matriz1(cont)=RS("campo1").value
    matriz2(cont)=RS("campo2").value
    matriz3(cont)=RS("campo3").value
    RS.movenext
    cont=cont+1
wend
RS.close

'*********************************************
'EMPIEZA EL CONSTRUCTOR DE DESPLIEGUE DE INFORMACION 
'********************************************* 
CuantosDespliegue=10
CuantasPaginas=Int(cuantos/CuantosDespliegue)+1
response.Write "Cuantas Paginas: "&CuantasPaginas&"<br/>"
response.Write "Cuantos Registros: "&CuantosDespliegue&"<br/>"
klll=0
consecutivo=1
        
'CREARA LAS PAGINAS QUE SE USARAN
%>
<table><tr><%
For lk=1 to CuantasPaginas%>
    <th><input type="button" onclick="cambio('tabla<%=lk%>')" value="<%=lk%>" /></th><%
next
%></tr></table><%

'CREARA LAS TABLAS DE MUESTRAS<div class="story1">
for kl=0 to CuantasPaginas%>
<A name="<%=kl+1%>"
'esta seccion es de los encabezados
<table id="tabla<%=kl+1%>">
    <tr>
         <th><a href="#inicio">#</a></th>
         <th>Matriculas</th>
         <th>Indez</th>
         <th>Periodos</th>
         <th>Monto a Pagar</th>
     </tr><%
        for kll=0 to CuantosDespliegue-1
'este if es para evaluar si ya no hay mas registros, en caso de estar vacio
'se sale del ciclo
            if matriz1(klll)<>"" then%>
     <tr>
          <th><%=consecutivo%></th>
          <td><%=matriz1(klll)%></td>
          <td><%=matriz2(klll)%></td>
          <td><%=matriz3(klll)%></td>
          <td><%=matriz3(klll)*2000%></td>
     </tr>
    <%consecutivo=consecutivo+1
    klll=klll+1
else
    kll=CuantosDespliegue+1
    kl=CuantasPaginas+1
end if
next%>
</table>
<%
'esta parte es buena, por que asi sacrificamos menos el servidor 
'y despliega datos mas rapido
response.Flush()
next
'**********************************************
'TERMINA EL CONSTRUCTOR DE DESPLIEGUE DE INFORMACION 
'**********************************************
</div>
consecutivo=""
cxn.close
set cxn=nothing
me funciona muy bien, se que se puede optimisar mas, pero pues ahi esta para que lo depure amigos
espero les sirva a alguien, que no quiera tener que llamar a cada rato a su base de datos y paginar y utilizar todo el codigo que usamos en los demas scripts
SUERTE

muchas gracias a MikiBroki, por la asesoria,
y un poco de codigo del siguiente POST
http://www.forosdelweb.com/showpost....82&postcount=1

Última edición por Shiryu_Libra; 07/03/2007 a las 19:01 Razón: depuracion del script, para ocultar la tabla anterior
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 05:37.