Tabela Dinâmica JSP

5 respostas
R

Bom dia, tenho uma jsp com vários combos, gostaria que através de um botão submit, os valores escolhidos nesses combos fossem acrescentados a uma tabela exibida na própria página ou numa

, e à cada vez que chamasse o submit, ele acrescentasse nessa tabela, e cada linha tivesse a opção de remover.

Consegui fazer isso utilizando javascript, porém depois não consigo salvar essa tabela no banco SQL.

Gostaria de salvar no banco com um outro botão, para não ter que me conectar e fazer uma nova requisição à cada inserção ou exclusão na tabela.

Não estou, nem posso no momento utilizar nenhum framework pra fazer isso, jsf, etc…

Desde já, muito obrigado!

5 Respostas

A

cara… na parte de adicionar vai ser um esquema tipo esse:

//ADICIONA UM REQUISITO
		function adicionarRequisito()
		{
			//VERIFICA SE FOI ESCOLHIDO O CURSO//
			if(document.getElementById("treinamento.nome").value!="")
			{ 	
				//pega os valores dos campos			
				var nome=document.getElementById("treinamento.nome").value;//nomeTreinamento;
				var objetivo=document.getElementById("treinamento.objetivo").value;
				
				if(objetivo.length>22)
				{
					objetivo = objetivo.substring(0,22)+"...";
				}
			
				var tblBody =document.getElementById("tabelaRequisitos").tBodies[0];
				
				var newRow = tblBody.insertRow(linhaContadorRequisito);
  				newRow.className="odd";  
  				newRow.id=linhaRequisito;
  				
    			var newCell1 = newRow.insertCell(0);
    			newCell1.innerHTML = nome+"<input type=\"hidden\" name=\"requisito\" value=\""+document.getElementById("treinament").value+"\"/>";
    			
    			var newCell2 = newRow.insertCell(1);
    			newCell2.innerHTML = objetivo;
    			   			
    			var newCell3 = newRow.insertCell(2);
    			newCell3.innerHTML = "<a href=\"javascript:deletar('"+linhaRequisito+"')\"><bean:message key="label.link.excluir" /></a>";
			    			    			
				linhaRequisito++;
				linhaContadorRequisito++;
				esconderLayer('divRequisito');
			}
			else
			{
				alert('O campo Requisito deve ser selecionado!');
			}		
		}
...

<table class="estilo" id="tabelaRequisitos" width="100%">
						<thead>
							<tr>
								<th width="120px"><bean:message key="label.tabela.nome"/></th>
								<th ><bean:message key="label.tabela.objetivo"/></th> 
								<th width="60px" ><bean:message key="label.tabela.acao"/></th>					
							</tr>										
						</thead>	
						<tbody>
						</tbody>									
					</table>

ve se ajuda em alguma coisa…

R

Cara, a tabela eu consigo montar, o problema é que como faço via javascript não consigo depois pegar a tabela já montada e mandar pro banco… Mesmo assim obrigado!

Mas se tiver outra dica eu agradeço muito!

A

mas ai que ta cara…
isso aqui

var newCell1 = newRow.insertCell(0);   
                newCell1.innerHTML = nome+"<input type=\"hidden\" name=\"requisito\" value=\""+document.getElementById("treinament").value+"\"/>";

vai ser um array (requisito, nesse casso) na hora que vc for pegar os dados…

A

Olá amigos!
seguinte…
eu tenho uma página JSP que pega os dados do banco via hibernate e insere em um Vector. Em seguinda, essa página chama outra página passando o Vector com os dados e a nova página cria uma tabela dinâmica(a quantidade de células é a mesma de elementos vindos do banco). Depois de criada a tabela, eupreciso jogar os dados do vector cada um em uma célula. Porém como a tabela é criada via javascript, nao estou conseguindo passar cada posição do vector para a célular…

OBJETIVO: criar uma tabela dinamica, de acordo com o numero de elementos no vector e depois inserir estes elementos cada um em uma célula.

Desde já agradeço a ajuda.

vou postar o trecho de código que fiz:

...
<%
	    Vector<String> e = (Vector<String>)session.getAttribute("nomes");
%>
<script language="javascript">
    
    		equip0 = new Array("eq01","normal","11:30");
		...
		equipX = new Array("eq12","scomunicacao","22:50");
			
		equip = new Array(equip0, ..., equipX);
		
		var status = new Array("normal","scomunicacao","alarme","manutencao");
				
		function inserirLinhaTabela() 
		{
			var table = document.getElementById("minhaTabela");
            // Captura a quantidade de linhas já existentes na tabela
            var numOfRows = table.rows.length;
            // Captura a quantidade de colunas da última linha da tabela
            var numOfCols = table.rows[numOfRows-1].cells.length;

            // Insere uma linha no fim da tabela.
            var newRow = table.insertRow(numOfRows);
			
			 			
	        // Faz um loop para criar as colunas
            for (var j = 0; j < numOfCols; j++) 
			{			
		
                // Insere uma coluna na nova linha 
                newCell = newRow.insertCell(j);	
											
				if(equip[i][1]==status[3])
				{
					k = "<img src=i_manutencao.png></a><br>";
				}
				else
				{
					if(equip[i][1] == status[2])
					{
						k = "<img src=i_alarme.png><br>";
					}
					else
					{
						if(equip[i][1]==status[1])
						{
							k= "<img src=i_scomunicacao.png><br>";
						}
						else
						{
							if(equip[i][1]==status[0])
							{
								k = "<img src=i_normal.png><br>";
												
							}												
						}
					}			
				}
								
				if (i <=equip.length) 
				{
                // Insere um conteúdo na coluna
					k = k + "<p align=center>" + equip[i][0] + "</p>";
	                newCell.innerHTML = k;
				}
				i++;
            }
		}
		
			
</script>
V

Com certeza já deve ter solucionado a sua dúvida Tiago, mas fica para alguém que tenha a mesma dúvida.
Criei a sua tabela de forma que dependa do for, sendo que o for eh do tamanho do .size() do seu vetor, list, etc.

Algo assim:

&lt;table&gt;
   &lt;% for ... %&gt;
   &lt;tr&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;% } //fechando o for %&gt;
&lt;/table&gt;

Blz ?

Criado 12 de março de 2009
Ultima resposta 28 de fev. de 2011
Respostas 5
Participantes 4