Mostrar seleção de uma comboBox conforme o valor setado em value [RESOLVIDO]

6 respostas
fwsales

Olá pessoal.

Tô com uma dúvida!

Para inserir o estado civil:

<tr>
                    <th>&nbsp;Est. Civil:&nbsp;</th><td><select name="estado_civil">
                            <option value="0"></option>
                            <option value="1">Solteiro(a)</option>
                            <option value="2">Casado(a)</option>
                            <option value="3">Divorciado(a)</option>
                            <option value="4">Viúvo(a)</option>
                        </select></td><td></td>
                </tr>

Para alterar, é possível, se em value entrar um valor 1 e a combo box já vir
selecionado Solteiro(a). Se entrar 3 em value vir selecionado Divorciado(a) e assim por diante?

Sei fazer isso em Swing, mas em WEB não estou conseguindo!

6 Respostas

tuliomonteazul

Deixa eu ver se entendi direito, você quer exibir as opções do select com uma determinada opção selecionada certo?

Se você estiver usando apenas Servlets e JSP, com html puro (sem componentes de frameworks), você pode utilizar o atributo selected da tag .
Ex:

<select id="teste">
    <option value="1">Opcao1</option>
    <option value="2" selected>Opcao2</option>
</select>

Ou então você pode fazer com javascript:

document.getElementById('teste')[1].selected = "selected"; // vai selecionar a Opcao2

Pra fazer isso de maneira dinâmica, dá uma olhada nesse post que mostra duas maneiras.

M

cara, só pra dar uma ajudada coloca um name nos values

<select id="teste"> <option value="1" name="estadoCivil">solteiro</option> <option value="2" name="estadoCivil">casado</option> </select>

fwsales

Mas onde entra o request.getParameter(“estado_civil”) ?

fwsales

O código abaixo manda para o “jsp” através de link.

<%
        try{
            out.print("<table border='1'>");
            out.print("<tr>");
            out.print("<th>&nbsp;Código&nbsp;</th><th>&nbsp;Nome&nbsp;</th><th>&nbsp;CPF&nbsp;</th><th>&nbsp;Editar&nbsp;</th><th>&nbsp;Excluir&nbsp;</th>");
            AlunoDAO ald = new AlunoDAO();
            String filtro = request.getParameter("pesquisa_id");
            ArrayList<Aluno> alunos = ald.listar_por_id(filtro);
            for (int num = 0; num < alunos.size(); num++){
                out.print("<tr>");
                out.print("<td>&nbsp;"+alunos.get(num).getId()+"&nbsp;</td>");
                out.print("<td>&nbsp;"+alunos.get(num).getNome()+"&nbsp;</td>");
                out.print("<td>&nbsp;"+alunos.get(num).getCpf()+"&nbsp;</td>");
                out.print("<td><a href='AlterarAlunos.jsp?id="+alunos.get(num).getId()+"&nome="+alunos.get(num).getNome()+"&sexo="+alunos.get(num).getSexo()+"&estado_civil="+alunos.get(num).getEstado_civil()+"&cpf="+alunos.get(num).getCpf()+"&descricao="+alunos.get(num).getDescricao()+"'><img alt='Alterar'  src='images/alterar.png'></a></a></td>");
                out.print("<td><a href='ApagarAluno.jsp?cod="+alunos.get(num).getId()+"'><img alt='Apagar'  src='images/apagar.png'></a></td>");
                out.print("</tr>");
            }
        }catch(Exception erro){
            throw new RuntimeException(erro);
        }
        %>

Então, se do servlet foi enviado para estado civil um valor 3, a página tem que vir com “Divorciado(a)” selecionado, se enviado 1, então Solteiro(a), etc.

<form action="ServletAlterarAlunos.jsp" method="get">
            <table border="1">
                <tr>
                    <th>&nbsp;ID:&nbsp;</th><td><input type="text" name="id" value="<%=request.getParameter("id")%>" size="50" readonly  /></td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;Nome:&nbsp;</th><td><input type="text" name="nome" value="<%=request.getParameter("nome")%>" size="50"/></td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;Sexo:&nbsp;</th><td><input type="radio" name="sexo" value="0"/>Masculino
                                                  <input type="radio" name="sexo" value="1"/>Feminino
                    </td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;Est. Civil:&nbsp;</th><td><select name="estado_civil">
                            <option value="0">Escolher</option>
                            <option value="1">Solteiro(a)</option>
                            <option value="2">Casado(a)</option>
                            <option value="3">Divorciado(a)</option>
                            <option value="4">Viúvo(a)</option>
                        </select></td><td></td>
                </tr>
                <tr>
                    <th>&nbsp;CPF:&nbsp;</th><td><input type="text" name="cpf"  maxlength="11" value="<%=request.getParameter("cpf")%>" size="50"/></td><td></td>
                </tr>
                <tr>
                    <th>Descrição:</th><td><textarea name="descricao" rows="5" cols="39"><%=request.getParameter("descricao")%></textarea></td>
                    <td><input type="submit" value="Alterar"/></td>
                </tr>
            </table>
        </form>

Do código acima, o que não está funcionando, é o radio eo combobox, pra exemplo.

tuliomonteazul

Você pode utilizar JSP EL (Expression Language), como naquele link que eu havia mandado. Ficaria mais ou menos assim:

<select name="estado_civil">
    <option value="0" ${param.estado_civil == '0' ? 'selected' : ''}>Escolher</option>
    <option value="1" ${param.estado_civil == '1' ? 'selected' : ''}>Solteiro(a)</option>
    <option value="2" ${param.estado_civil == '2' ? 'selected' : ''}>Casado(a)</option>
    <option value="3" ${param.estado_civil == '3' ? 'selected' : ''}>Divorciado(a)</option>
    <option value="4" ${param.estado_civil == '4' ? 'selected' : ''}>Viúvo(a)</option>
</select>

Este símbolo ${ } é para utilizar JSP EL. É uma boa prática utilizá-la, mas dependendo da versão do Servlet que você está utilizando (isto é definido no começo do web.xml) você pode ter que declarar no cabeçalho da sua JSP para que ela funcione:

<%@ page isELIgnored="false" %>
fwsales

Nunca usei antes “JSP EL”, mas olha só como eu estava quebrando o galho:

<th>&nbsp;Est. Civil:&nbsp;</th><td><select name="estado_civil">
                            <%
                                        if (request.getParameter("estado_civil").equals("1")) {
                                            out.print("<option value='1' selected>Solteiro(a)</option>");
                                            out.print("<option value='2'>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4'>Viúvo(a)</option>");
                                        } else if (request.getParameter("estado_civil").equals("2")) {
                                            out.print("<option value='1'>Solteiro(a)</option>");
                                            out.print("<option value='2' selected>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4'>Viúvo(a)</option>");
                                        } else if (request.getParameter("estado_civil").equals("3")) {
                                            out.print("<option value='1'>Solteiro(a)</option>");
                                            out.print("<option value='2' selected>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4'>Viúvo(a)</option>");
                                        } else if (request.getParameter("estado_civil").equals("4")) {
                                            out.print("<option value='1'>Solteiro(a)</option>");
                                            out.print("<option value='2'>Casado(a)</option>");
                                            out.print("<option value='3'>Divorciado(a)</option>");
                                            out.print("<option value='4' selected>Viúvo(a)</option>");
                                        }
                            %>
                        </select></td><td></td>

Kkkkk
Valeu Pessoal!

Criado 11 de agosto de 2011
Ultima resposta 13 de ago. de 2011
Respostas 6
Participantes 3