vinicvo 4 Denunciar post Postado Outubro 4, 2009 Olá pessoal. Eu tô com um projeto php e de repente surgiu um problema. Eu tenho um formulário em uma página onde tem um "select menu" com as várias opções. Além disso tem os outros campos para serem preenchidos. O caso é o seguinte: se o usuário não preenche algum campo de forma correta eu coloquei uma mensagem de erro, na mesma página. O problema é que toda vez que a página é recarregada, o select menu volta na opção inicial. Gostaria de saber algum método pra evitar que isso aconteça, ou seja, que a página sofra o refresh mas o menu continue com a opção que o usuário escolheu. Desde ja agradeço a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Outubro 4, 2009 Olá pessoal. Eu tô com um projeto php e de repente surgiu um problema. Eu tenho um formulário em uma página onde tem um "select menu" com as várias opções. Além disso tem os outros campos para serem preenchidos. O caso é o seguinte: se o usuário não preenche algum campo de forma correta eu coloquei uma mensagem de erro, na mesma página. O problema é que toda vez que a página é recarregada, o select menu volta na opção inicial. Gostaria de saber algum método pra evitar que isso aconteça, ou seja, que a página sofra o refresh mas o menu continue com a opção que o usuário escolheu. Desde ja agradeço a todos. Uma das soluções seria validar os campos com javascript e ajax em caso de alguma consulta ao banco de dados! Compartilhar este post Link para o post Compartilhar em outros sites
henry franklin 0 Denunciar post Postado Outubro 4, 2009 bom filho, A solução eh um pouco complexa. Depende de como voce está listando os dados do select. Se o select é montado pelo PHP é bem mais facil. Basta colocar uma condição (if) para verificar se aquele item que ele está listando, tem o mesmo valor (value) do é recebido do formulário. Daí coloca-se o "echo selected" na opção em questão. se os dados sao fixos a solução seria fazer como o WDuarte disse e inserir uma função javascript para forçar a seleção quando a página fosse carregada no cliente. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Outubro 6, 2009 Dá uma olhada nesse script em funcionamento, acho que te serve como uma luva: http://www.wbruno.com.br/scripts/combo-preenche-input.php pagina.html <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("select[name='nome']").change(function(){ $("input[name='endereco']").val('Carregando...'); $("input[name='telefone']").val('Carregando...'); $.getJSON( 'function.php', {idCliente: $(this).val()}, function(data){ $.each(data, function(i, obj){ $("input[name='endereco']").val(obj.endereco); $("input[name='telefone']").val(obj.telefone); }) }); }); }); </script> </head> <body> <form action="" method="post"> <label>Nome: <select name="nome"> <option value="">--</option> <?php include('function.php'); echo montaSelect(); ?> </select></label> <label>Endereço: <input type="text" name="endereco" value="" /></label> <label>Telefone: <input type="text" name="telefone" value="" /></label> </form> </body> </html>function.php <?php $con = mysql_connect('localhost', 'root', '123'); mysql_select_db('ajax', $con); /** * função que retorna o select */ function montaSelect() { $sql = "SELECT `idCliente`, `nome` FROM `cliente` "; $query = mysql_query( $sql ); if( mysql_num_rows( $query ) > 0 ) { while( $dados = mysql_fetch_assoc( $query ) ) { $opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>'; } } else $opt = '<option value="0">Nenhum cliente cadastrado</option>'; return $opt; } /** * função que devolve em formato JSON os dados do cliente */ function retorna( $id=null ) { $id = (int)$id; $sql = "SELECT * FROM `cliente` "; if( $id != null ) $sql .= "WHERE `idCliente` = {$id} "; $query = mysql_query( $sql ); //$json = 'var dados = '; $json .= ' ['; if( mysql_num_rows( $query ) > 0 ) { while( $dados = mysql_fetch_assoc( $query ) ) { $json .= "{endereco: '{$dados['endereco']}', telefone: '{$dados['telefone']}'}";; } } else $json = 'endereco: não encontrado'; $json .= ']'; //$jston .= ';'; return $json; } /* só se for enviado o parâmetro, que devolve o combo */ if( isset($_GET['idCliente']) ) { echo retorna( $_GET['idCliente'] ); } ?>Fonte: http://www.wbruno.com.br/blog/?p=12 Compartilhar este post Link para o post Compartilhar em outros sites