Atualiza campo

3 respostas
denisspitfire

Tenho uma lista de Tarefas que quando eu clico em finalizar tarefa ele troca um botao"finalizar tarefa" pela palavra finalizado!

isso usando o js.

<script type="text/javascript"> function finalizaAgora(id) { $.post("finalizaTarefa", { 'id' : id }, function(data) { // selecionando o elemento html através da ID e alterando o HTML dele $("#tarefa_fin_" + id).html("Finalizado"); }); } </script>
mas eu quero que ele mostre a data também quando eu clicar em finalizar tarefa. Ou seja, toda vez que eu clicar em finalizaAgora ele além de ir lá e alterar no banco ele troque o valor de um campo na pagina jsp.
JSP

<table> <tr> <th>Id</th> <th>Descrição</th> <th>Finalizado?</th> <th>Data de finalização</th> </tr> <c:forEach items="${tarefas}" var="tarefa"> <tr id="tarefa_tr_${tarefa.id}"> <%-- <c:set var="tarefa" scope="request" value="${tarefa}" /> --%> <%-- <c:import url="linha.jsp" /> --%> <td>${tarefa.id}</td> <td>${tarefa.descricao}</td> <c:if test="${tarefa.finalizado eq false}"> <td id="tarefa_fin_${tarefa.id}"> <a href="#" onClick="finalizaAgora(${tarefa.id})"> Finalizar agora!</a>&nbsp; </td> </c:if> <c:if test="${tarefa.finalizado eq true}"> <td>Finalizado</td> </c:if> <td id="tarefa_dt_${tarefa.id}"> <fmt:formatDate value="${tarefa.dataFinalizacao.time}" pattern="dd/MM/yyyy" /> </td> <td><a href="removeTarefa?id=${tarefa.id}">Remover</a></td> <td><a href="mostraTarefa?id=${tarefa.id}">Alterar</a></td> </tr> </c:forEach> </table>
Alguem da uma luz?

3 Respostas

denisspitfire
função que finaliza
public void finaliza(Long id) {

		if (id == null) {
			throw new IllegalStateException("Id da tarefa não deve ser nula.");
		}

		String sql = "update tarefas set finalizado = ?, dataFinalizacao = ? where id = ?";
		PreparedStatement stmt;
		try {
			stmt = connection.prepareStatement(sql);
			stmt.setBoolean(1, true);
			stmt.setDate(2, new Date(Calendar.getInstance().getTimeInMillis()));
			stmt.setLong(3, id);
			stmt.execute();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
D

por que vc nao faz isso com jquery tb passando a data dentro do campo campo como vc fez com o bt?

abraço!!

denisspitfire

pq precisa ser assim que chama o botao. tipo eu clico em botao e ele alem de atualizar o texto ele atualizar em outro local

Criado 13 de junho de 2012
Ultima resposta 14 de jun. de 2012
Respostas 3
Participantes 2