Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

criar colunas em tabelas automaticamente.

Recommended Posts

pessoal,eu fiz uma tabela com 3 colunas. dentro de cada coluna está escrito critério. (esse critério foi cadastrado no banco e cada critério pode ter n subcritérios).como eu faço para quando eu clicar no critério1 abrir colunas divididas abaixo dela? exemplo:no banco esse critério1 tem 3 subcritérios.então na coluna 1 (critério1), quando eu clicar no texto critério1 tem que abrir 3 colunas abaixo dela com os subcritérios que estão no banco (os 3 subcritérios).como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria isso aqui????

Se não for fala ai...

 

<html>	<head>		<title>eee</title>		<script type="text/javascript">		</script>	</head>	<body>		<table width="100%" border=2>			<tr>				<td onclick="document.getElementById('criterio1').style.display='block';">Criterio 1</td>				<td onclick="document.getElementById('criterio2').style.display='block';">Criterio 2</td>				<td onclick="document.getElementById('criterio3').style.display='block';">Criterio 3</td>			</tr>			<tr>				<td>					<table id="criterio1" border=2 style="display:none;">						<tr>							<td>Sub-Criterio 1</td>							<td>Sub-Criterio 2</td>							<td>Sub-Criterio 3</td>						</tr>					</table>				</td>				<td>					<table id="criterio2" border=2 style="display:none;">						<tr>							<td>Sub-Criterio 1</td>							<td>Sub-Criterio 2</td>							<td>Sub-Criterio 3</td>						</tr>					</table>				</td>				<td>					<table id="criterio3" border=2 style="display:none;">						<tr>							<td>Sub-Criterio 1</td>							<td>Sub-Criterio 2</td>							<td>Sub-Criterio 3</td>						</tr>					</table>				</td>			</tr>		</table>	</body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

renan, e tipo... no meu banco existem n critérios e subcritérios. como eu posso fazer com q traga todos os critérios e seus respectivos subcritérios? e tipo. tem que aparecer o um número de colunas de acordo com a quantidade de critérios e a mesma coisa para seus respectivos sub critérios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, mas isso fica simples qdo ta programando pro server..é só pra cada criterio você gera uma td.. simplesdai concatena no codigo dele por exemplo "codigo" + id do criteriodai na segunda linha da tabela, faz a mesma coisa..pra cada criterio, pega todos os subcriterios e gera uma tabela dentro da td.....é só fazer o loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sei.tipo só que aqui nós criamos nossos próprios componentes para fazer uma busca no banco. veja:<%Response.Write ""regpai = request("regpai")codcriterio = request("codcriterio")'Abre instância com o componente e permite a utilização dos métodos set con = server.CreateObject("FPDecisao.Criterio")r_pes = con.Buscar(erro,null, null, null)'Verifica se existe algum erro no retorno dos componentes if not isnull(r_pes) and erro then msg_erro = r_pes(0) & "-" & r_pes(1) %> <!--#include file="..\pg_erro.asp"--> <% end if r_pes1 = con.Buscar(erro1,null, codcriterio, regpai)'Verifica se existe algum erro no retorno dos componentes if not isnull(r_pes1) and erro then msg_erro = r_pes1(0) & "-" & r_pes1(1) %> <!--#include file="..\pg_erro.asp"--> <% end if set con = nothing%><html> <head> <title>matriz</title> </head> <body> <table width="1100" border=1 bordercolor="blue" cellspacing="1" cellpading="0" align="center"> <tr> <%for i= 0 to ubound(r_pes,2)%> <td><font size="1" face="verdana"><center><%=r_pes(1,i)%></center></font></td> <!-- <td onclick="document.getElementById('criterio2').style.display='block';"><font size="1" face="verdana">critério 2</font></td> --> <!-- <td onclick="document.getElementById('criterio3').style.display='block';"><font size="1" face="verdana">critério 3</font></td> --> <%next%> </tr>aí eu trouxe todos os meus critérios. agora eu quero trazer os subcriterio de cada criterio.como seria esse while? porque da forma q eu faço aqui,com componentes, não seriawhile not rs.eof entendu?como posso resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, cara, você fez certo, é só terminar

você fez assim

 

<%for i= 0 to ubound(r_pes,2)%><td><font size="1" face="verdana"><center><%=r_pes(1,i)%></center></font></td><!-- <td onclick="document.getElementById('criterio2').style.display='block';"><font size="1" face="verdana">critério 2</font></td> --><!-- <td onclick="document.getElementById('criterio3').style.display='block';"><font size="1" face="verdana">critério 3</font></td> --><%next%>

Agora, concatena ali no "document.getElementById('criterio3')" o codigo do criterio... tipo 'criterio<%= r_pes("codigo") %>' pra cada um ter um id diferente..

 

dai logo embaixo, você faz um select dos subcriterios dando um join na tabela de criterios...

dai na hora de gerar o id dele, você coloca o codigo do criterio, e nas tds faz a mesma coisa q você fez ai em cima.... igualzinho, só faltou completar, mas lembra de concatenar o id e gerar as colunas dos subcriterios...

 

qualquer coisa posta ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, o porque da concatenção é pra gerar os id´s...

cada tabela tem um id, e qdo o cara clica na celula você tem q saber qual tabela tem q mostrar..

então precisa ter alguma maneira de saber qual ela é

por isso te falei pra colocar o codigo do criterio, assim fica facil...

pq você faz assim

 

<td onclick="document.getElementById('criterio<%= rs_pes("codigo_CRITERIO") %>').style.display='block';">

dai na tabela, faz a mesma coisa

 

<table id="criterio<%= rs_pes("codigo_CRITERIO") %>" border=2 style="display:none;">

por isso te falei, depois é só carregar os sub-criterios

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele está motando certinho. em cima todos os critérios pais e embaixo os subcritérios. porém, como você pode ver os subcriterios são todos iguais. ou seja, está pegando somente do primeiro. não sei pq. os for q eu faço teria q entrar em loop. veja o codigo:

 

<%Response.Write ""'------------------------------------'Criador: Rafael'Data de Criação: 13/12/2005'Objetivo: Matriz'------------------------------------'Option Explicit'-------------VARIÁVEIS--------------'Variáveis simples (Básicas do código)dim codcriterio	 'Código de Critériodim criterio	 'Variável que exibe o nome do critério informadodim regpai	   'Variável que informa que exibe o critério pai de um subcritério dim codfilho	 'Código do critério fillho	dim erro		 'Variável responsável por indicar se existe erro no retorno dos componentesdim erro1		 'Variável responsável por indicar se existe erro no retorno dos componentesdim i			 'Variável para auxílio em LOOPdim j			 'Variável para auxílio em LOOPdim critfillho	 'Variável que exibe o critério fillho'Variáveis de Dados (Arrays)dim r_pes2	  'Variável que exibe o critério pai do subcritério.dim r_pes3'Variáveis de Instância ()dim con			'Variável responsável por instanciar o componente de critériocodcriterio = Request("codcriterio")criterio = Request("criterio")regpai = Request("regpai")critfillho = request("critfillho")codfilho = request("codfilho")if len(trim(regpai)) = 0 then regpai = null'************************************************************************session("ParticipanteAlcanceID") = 380286if len(trim(tpb)) = 0 then tpb = 1	erro = false	erro1 = false	'Abre instância com o componente e permite a utilização dos métodos 	set con = server.CreateObject("FPDecisao.Criterio")		'traz todos os critérios	r_pes2 = null	r_pes2 = con.Buscar(erro,5, null, null)	'r_pes2 = con.Buscar(erro,2, 78, null)			'Verifica se existe algum erro no retorno dos componentes	if not isnull(r_pes2) and erro then		msg_erro = r_pes2(0) & "-" & r_pes2(1)		%>		<!--#include file="..\pg_erro.asp"-->		<%	end if	'traz os dados na tela	codcriterio = trim(r_pes2(0,0))	criterio = trim(r_pes2(1,0))	regpai = trim(r_pes2(3,0))	if len(trim(codcriterio)) > 0 and not isnull(session("Participantealcanceid")) then	'traz os critérios filhos		r_pes3 = null	r_pes3 = con.Buscar(erro1,2,codcriterio,null)				'Verifica se existe algum erro no retorno dos componentes	if not isnull(r_pes3) and erro1 then		msg_erro1 = r_pes3(0) & "-" & r_pes3(1)		%>		<!--#include file="..\pg_erro.asp"-->		<%	end if		'traz os dados			codfilho = trim(r_pes3(3,0))	critfillho = trim(r_pes3(1,0))			Response.Write "Critério pai: " & codcriterio & "<br>"	Response.Write "Critério filho: " & codfilhoend if		'Fecha a instância do componenteset con = nothing%><html>	<head>		<title>matriz</title>		<script type="text/javascript">		</script>	</head>	<body>	<form name="frm1" id="frm1" method="post">		 <table width="100%" border=1 bordercolor="blue" cellspacing="1" cellpading="0" align="center"> 			<tr height="18">						<!-- ------------------------------------ -->			<!-- função que traz os critérios pais	-->			<!-- ------------------------------------ -->							<%if not isnull(r_pes2) then%>					<%for i = 0 to ubound(r_pes2,2)%>						<td align="center"><input type="hidden" name="codcriterio" value="<%=r_pes2(0,i)%>">							<%=r_pes2(1,i)%>																						<%if codcriterio = codfilho then%>										<% criteriofilho()%>								<%else%>									<%Response.Write "skhljs"%>								<%end if%>						</td>									<%next%>								<%end if%>									<!-- ------------------------------------ -->			<!-- função que traz os critérios fillhos -->			<!-- ------------------------------------ -->								<%sub criteriofilho()%>							<table width="200" border=1 bordercolor="blue" cellspacing="1" cellpading="0" align="center">						<tr>							<%if not isnull(r_pes3) then%>							  <%for j = 0 to ubound(r_pes3,2)%>								<td align="center"><input type="hidden" name="codfilho" value="<%=r_pes3(0,j)%>">								<%=r_pes3(1,j)%>								</td>							  <%next%>							<%end if%>						</tr>							</TABLE>				<%end sub%>												</tr>		</table>	</body>  </form></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, o seu codigo ta meio enrolado de entender, mas pelo pouco q eu vi, A CADA criterio você tem q buscar os subcriterios equivalentes pra ele... tipo nessa parte

 

<%if codcriterio = codfilho then%>										<% criteriofilho()%>								<%else%>									<%Response.Write "skhljs"%>								<%end if%>

 

ai, a cada iteração do loop, quer dizer, a cada criterio, carrega o RecordSet com seus subcriterios e executa a Sub... tem q jogar ai no meio, senão pega sempre o mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.