Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Form com Select - CodeIgniter

Olá, preciso fazer um Form com Select (Selecionando um Estado) em uma pagina que de acordo com o estado selecionado carregue as informações do formulário no banco de dados. O formulário com as informações do estado é carregado corretamente.Meu Problema é que o SELECT após a seleção não mostra o estado selecionado na caixa de seleção e retorna para o 1º Estado da Lista.

Segue Abaixo a VIEW

<label class="col-sm-3 col-form-label">Estado</label>
                                        <div class="col-sm-9">
                                            <select class="form-control" type="text" id="slcState" name="slcState" onchange="refresh()">
                                                <?php foreach ($states as $st): ?>
                                                    <option value="<?= $st['idEstado'] ?>" <?= ($about['id_estado'] == $st['idEstado']) ? '' : ''; ?> >
                                                        <?= $st['nome'] ?> </option>
                                                    <?php endforeach; ?>
                                            </select>
                                        </div>

<script>
        function refresh() {
            window.location.href = '<?= base_url("Site/sobre/?state=") ?>' + $("#slcState").val();

        }

    </script>
1 resposta
solução

Oi Lucas, tudo bom?

Pra fazer a option vir marcada por padrão, precisamos passar a property Selected pra option certa. No seu caso, o if foi feito mas faltou imprimir Selected:

 <select class="form-control" type="text" id="slcState" name="slcState" onchange="refresh()">
                                                <?php foreach ($states as $st): ?>
                                                    <option value="<?= $st['idEstado'] ?>" <?= ($about['id_estado'] == $st['idEstado']) ? 'SELECTED' : ''; ?> >
                                                        <?= $st['nome'] ?> </option>
                                                    <?php endforeach; ?>
                                            </select>

Quanto ao caso da option voltando pra primeira opção, veirifica (só pra garantir) que o conteúdo de $st['idEstado'] realmente está mudando de uma option pra outra.

De resto, não encontrei nenhum problema aparente no código

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software