[RESOLVIDO]Abrir novo formulário ao clicar em botão html

O que eu tenho é o seguinte: um botão que ao ser clicado, torna visível um formulário que aparece logo abaixo.
Aqui está o código:

<c:forEach var=“colaborador” items="${daocolaborador.pesquisar()}">

	<tr>
		<td style="width: 25%">${colaborador.id}</td>
		<td style="width: 25%">${colaborador.nome}</td>
		<td style="width: 25%">${colaborador.local}</td>
		<td style="width: 25%">
			<button class="btn btn-danger" style="color:white" name="del" type="submit">Deletar</button>
			<button class="btn btn-warning" style="background-color:orange;color:white" type="submit" onClick="mostrar()">Alterar</button>
			
			<form action="ServletAlterarColaborador" method="POST" id="formAlterar">

				<fieldset disabled>
				<input type="text" class="form-control" value="${colaborador.id}">
				</fieldset>
				<input type="text" style="display: none" class="form-control" name="id" value="${colaborador.id}"> 
				<input type="text" class="form-control" name="nome" value="${colaborador.nome}">
				<input type="text" class="form-control" name="local" value="${colaborador.local}">

				<button type="submit" class="btn btn-success" style="color: white">Confirmar</button>

			</form>
					
		</td>				
	</tr>
		
</c:forEach>

Como podem ver, é uma lista com varios itens e no canto direito de cada um tem um botão de alterar. O que eu queria que acontecesse é que quando clicasse nesse botão aparecesse o formulário do item clicado. Mas independente de qual botão eu clique, sempre aparece o formulário do primeiro item. Alguma idéia do porque?

Tableless mandou lembranças, viu?
O problema deve ser a função chamada

onClick="mostrar()"

A função tá funcionando, o loop é que está bichado, ao invez de repetir o formulário para cada linha, criou apenas para a primeira.

Não entendi a parte do tableless.

Tableless é uma recomendação da W3C para não utilizar tabelas para disposição nos sites…

Não, o loop está certo. Salvo se você não está buscando os colaboradores.
O que ocorre é que você não tem uma referência na função para definir qual será o form a ser aberto.

Entendi. Qual seria o ideal?

Entendi. A função está assim:

function mostrar(){
var div = document.getElementById(‘formAlterar’)
if (div.style.display == ‘none’) {
div.style.display = ‘block’
}else {
div.style.display = ‘none’
}
}

Pra funcionar, fiz da seguinte forma:

function mostrar(id){
var div = document.getElementById(id);
if (div.style.display == ‘none’) {
div.style.display = ‘block’
}else {
div.style.display = ‘none’
}
}

e no onClick do botão estou fazendo o seguinte:
onClick=“mostrar(${colaborador.id})”

que no caso é o id daqui:
form action=“ServletSoftware” style=“display:none” method=“POST” id="${colaborador.id}">