Manter valor da combo selecionado após submit

2 respostas
surfzera

Pessoal tenho uma página com dois forms quero que a combo(comboProduto) do segundo form(frmVisualizarTarifas2) fique selecionada após o submit não estou utilizando ajax.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%>

<h2>Visualizar Tarifas</h2>

<script>
$(function($){  
    
  	<c:if test="${aviso!='' && aviso!=null}">
		alert('<c:out value="${aviso}" />');
	</c:if>
	
    
});

</script>

<fieldset class="fieldset">

<legend>Lista de Tarifas</legend>
	<br/><br/>
	<table class="tableForm" align="left">
			<tbody>
			<form id="frmVisualizarTarifas1" name="frmVisualizarTarifas1" action="tarifa/imprimirTarifas" method="post">
				<tr>
					<td><input type="submit" class="button" onclick="return confirmaImpressao();" value="Imprimir"/></td>	
					<input id="tipoProduto" name="tipoProduto" type="hidden" value=""/>
				</tr>
			</form> 
			<form id="frmVisualizarTarifas2" name="frmVisualizarTarifas2" action="tarifa/visualizarTarifas" method="post">
				<tr>
					<td><label class="label">Produto:</label></td>
					<td>
						<select id="comboProduto" name="comboProduto" onchange="submit();"> 
							<option value="">.. Selecione ..</option>
							<c:forEach var="produto" items="${listaProduto}">
								<option value="<c:out value="${produto.codigo}" />" 
								   <c:if test="${produto.codigo==proposta.produto.codigo}">selected</c:if>
								 >
								<c:out value="${produto.nome}" />
							</option>
						</c:forEach>
						</select>
					</td>
				</tr>
			</form>
		</tbody>
	</table>
	<table class="table" 
		<c:if test="${aviso!='' && aviso!=null}">style="display: none"</c:if>
		<c:if test="${aviso=='' && aviso==null}">style=display: inline"</c:if> >
		<thead>
		<tr>
			<th>Produto</th>
			<th>Número</th>
			<th>Nome</th>
			<th>Forma de Pagamento</th>
			<th>Qde Cartões</th>
			<th>Valor</th>
		</tr>
		</thead>
		<tbody>
			<c:forEach var="tarifa" items="${listaTarifa}">
				<tr>
					<td align="center"><c:out value="${tarifa.produto.nome}"/></td>
					<td align="center"><c:out value="${tarifa.numero}"/></td>
					<td align="center"><c:out value="${tarifa.nome}"/></td>
					<td align="center"><c:out value="${tarifa.descricaoFormaPagamento}"/></td>
					<td align="center"><c:out value="${tarifa.quantidadeCartoesTarifa}"/></td>
					<td align="right"><c:out value="${tarifa.valorTarifa}"/></td>
				</tr>
			</c:forEach>
		</tbody>
	</table>

 </fieldset>

</fieldset>

2 Respostas

gomesrod

A idéia básica é essa mesmo, colocar um “selected” na opção que selecionada atualmente. Para entender porque não está funcionando, use as consagradas Técnicas de Debug em JSP ( :shock:) - coloque alguns c:out com os valores para tentar ver melhor o que está acontecendo.

Por exemplo: <c:forEach var="produto" items="${listaProduto}"> ATUAL=<c:out value="${produto.codigo}" />, SELECIONADO=<c:out value="${proposta.produto.codigo}" />, COMPARACAO=<c:out value="${produto.codigo==proposta.produto.codigo}" /> <option value="<c:out value="${produto.codigo}" />" <c:if test="${produto.codigo==proposta.produto.codigo}">selected</c:if> > <c:out value="${produto.nome}" /> </option> </c:forEach>

surfzera

cara consegui… viajei ali esqueci de retirar o proposta.produto.codigo e colocar o proprio produto selecionado para comparar tava comparando com outra coisa.

Valeu

Criado 11 de julho de 2011
Ultima resposta 11 de jul. de 2011
Respostas 2
Participantes 2