gugu3699 1 Denunciar post Postado Julho 2, 2014 Olá, primeiramente agradeço a atenção de todos. O meu problema é o seguinte, uso o código abaixo e ele funciona perfeito, carrega o combobox com todos os ufs e ecidades, depois faço o cadastro (com numero do id), Mas preciso exibir os dados (valores não id)cadastrados no combobox em uma página para alteração do mesmo, o combo ja deve vir preenchido com os valores. Como faço? O cadastro pega só o id de cada estado e cidade, e so armazena números. Script . $(function(){ $('#cod_estados').change(function(){ if( $(this).val() ) { $('#cod_cidades').hide(); $('.carregando').show(); $.getJSON('cidades.ajax.php?search=',{cod_estados: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value=""></option>'; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].cod_cidades + '">' + j[i].nome + '</option>'; } $('#cod_cidades').html(options).show(); $('.carregando').hide(); }); } else { $('#cod_cidades').html('<option value="">-- Escolha um estado --</option>'); } }); }); html <?php $con = mysql_connect( 'localhost', 'root', 'root' ); mysql_select_db( 'cadastro', $con ); ?> <label for="cod_estados">Estado:</label> <select name="cod_estados" id="cod_estados"> <option value=""></option> <?php $sql = "SELECT cod_estados, sigla FROM estados ORDER BY sigla"; $res = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $res ) ) { echo '<option value="'.$row['cod_estados'].'">'.$row['sigla'].'</option>'; } ?> </option></select> <label for="cod_cidades">Cidade:</label> <select name="cod_cidades" id="cod_cidades"> <option value="">-- Escolha um estado --</option> </select> ajax.cidades header( 'Cache-Control: no-cache' ); header( 'Content-type: application/xml; charset="utf-8"', true ); $con = mysql_connect( 'localhost', 'root', 'root' ) ; mysql_select_db( 'cadastro', $con ); $cod_estados = mysql_real_escape_string( $_GET['cod_estados'] ); $cidades = array(); $sql = "SELECT cod_cidades, nome FROM cidades WHERE estados_cod_estados=$cod_estados ORDER BY nome"; $res = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $res ) ) { $cidades[] = array( 'cod_cidades' => $row['cod_cidades'], 'nome' => $row['nome'], ); } echo( json_encode( $cidades ) ); fonte: http://www.daviferreira.com/posts/populando-selects-de-cidades-e-estados-com-ajax-php-e-jquery Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 2, 2014 Na hora de montar o combo, faça o php imprimir selected="selected" na option q estiver lá no banco Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 2, 2014 A alteração seria neste arquivo? O banco de dados de cidade e estado é diferente do banco de dados onde cadastro a pessoa com o id do estado e id da cidade. Os dois bancos devem ser interligados para que o combo puxe o id do cadastro na base de dados pessoas e procure o valor na base cidade e estado? como faço? Muito Obrigado. <?php $con = mysql_connect( 'localhost', 'root', 'root' ); mysql_select_db( 'cadastro', $con ); ?> <label for="cod_estados">Estado:</label> <select name="cod_estados" id="cod_estados"> <option value=""></option> <?php $sql = "SELECT cod_estados, sigla FROM estados ORDER BY sigla"; $res = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $res ) ) { echo '<option value="'.$row['cod_estados'].'">'.$row['sigla'].'</option>'; } ?> </option></select> <label for="cod_cidades">Cidade:</label> <select name="cod_cidades" id="cod_cidades"> <option value="">-- Escolha um estado --</option> </select> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 3, 2014 Imagina que a variavel $_estado_db veio lá do banco de dados. Vc faria: $_estado_db = 'RS'; while ( $row = mysql_fetch_assoc( $res ) ) { $selected = $_estado_db === $row['sigla'] ? ' selected="selected"' : ''; echo '<option value="'.$row['cod_estados'].'"'.$selected.'>'.$row['sigla'].'</option>'; }entendeu a idéia ? Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 3, 2014 Ahh entendi, mas como eu puxaria esta variavel? assim: <label for="cod_estados">Estado:</label><select name="cod_estados" id="cod_estados"> <option value=""></option> <?php $sql = "SELECT * FROM veiculos WHERE _estado_d ; $res = $_estado_db while ( $row = mysql_fetch_assoc( $res ) ) { $selected = $_estado_db === $row['sigla'] ? ' selected="selected"' : ''; echo '<option value="'.$row['cod_estados'].'"'.$selected.'>'.$row['sigla'].'</option>'; } Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 3, 2014 Não estou sabendo como puxar a variavel Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 3, 2014 Em qual tabela vc grava o que o usuário escolhe ? Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 3, 2014 na tabela veiculos. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 3, 2014 Faça um select nessa tabela, apartir do ID do usuário q está editando os dados, e popule aquela variável para poder fazer o if que mostrei. Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 3, 2014 Mas o problema é que queria buscar pela placa cadastrada porque um usuario pode editar varias placas ou seja o usuario busca a placa e com os valores retornados edita Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 3, 2014 Então use a placa.. eu não conheço seu sistema... =) Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 4, 2014 Ah ta ok me desculpa :(, sou inciante vou fazer e posto com resultado obrigado Willian Willian, ainda não consegui, acho que é o scrip, olha só como é o código todo abaixo: No final também tem o url e explicação da imagen da tela de cadastro como exemplo e página de alteração da uma olhada por favor acho q vendo assim você entende minha ideia melhor, não consegui te explicar bem. <<<<SCRIPT>>>>> <script type="text/javascript"> $(function(){ $('#cod_estados').change(function(){ if( $(this).val() ) { // $('#cod_cidades').hide(); //esconde o select e mostra o loading $('.carregando').show(); $.getJSON('cidades.ajax.php?search=',{cod_estados: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value="">Selecione</option>'; for (var i = 0; i < j.length; i++) { options += '<option value="' + j.cod_cidades + '">' + j.nome + '</option>'; } $('#cod_cidades').html(options).show(); //Mostra o select novamente apos pesquisa e esconde loading $('.carregando').hide(); }); } else { $('#cod_cidades').html('<option value="">Escolha um estado</option>'); } }); }); </script> <<<<<HTML>>>>>> <tr> <td class="td_head_formulario" width="100%" colspan="10"> BUSCA DE DADOS DO VEICULO E CONDUTOR </td> </tr> </thead> <tbody> <tr> <!-- Placa --> <td class="td_escura_formulario" align="right"> <span>Placa:</span> </td> <td class="td_escura_formulario" > <input type="text" class="maiuscula" name="nome" id="placa" size="6" value="" /> <input type="button" name="consultar" id="consultar" value="Consultar" style="cursor: pointer;" /> </td> <!-- responsavel --> <td class="td_escura_formulario" align="right"> <span>Responsável:</span> </td> <td class="td_escura_formulario" > <input name="responsavel" type="text" disabled="disabled" size="30" value="" /> <img src='../../imagens/editar.gif' title='Alterar cadastro' align="center" style='cursor:pointer;' id='despesa"' class='edit_despesa' /> <!-- chapa --> <td class="td_escura_formulario" align="right"> <span>Chapa:</span> </td> <td class="td_escura_formulario" > <input type="text" name="chapa" size="6" disabled="disabled" value="" /> </tr> <tr> <td align="right" nowrap="nowrap" class="td_clara_formulario">UF/Cid. Empl.:</td> <td colspan="5" style="padding-right:0;" align="left" nowrap="nowrap" class="td_clara_formulario"> <select name="cod_estados" class="uf_cidades" id="cod_estados"> <option value=""></option> <?php include "conexaocidadeestado.php";//conectando com o banco de dados $sql = "SELECT cod_estados, sigla FROM estados ORDER BY sigla"; $res = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $res ) ) { echo '<option value="'.$row['cod_estados'].'">'.$row['sigla'].'</option>'; } ?> </select> </select> / <select name="cod_cidades" class="cidades" id="cod_cidades"> <option value="">Escolha um estado</option> </select> <span class="carregando" style="display:none;"><img align="absmiddle" height="15" src="../../imagens/loading.gif"></span></td> </tr> <tr> <<<conexaocidadeestado>>>>> <?php //conexão com o servidor $conect = mysql_connect("localhost", "root", ""); // Caso a conexão seja reprovada, exibe na tela uma mensagem de erro if (!$conect) die ("<h1>Falha na conexão com o Banco de Dados!</h1>"); // Caso a conexão seja aprovada, então conecta o Banco de Dados. $db = mysql_select_db("adm_cidadeestado"); /*Configurando este arquivo, depois é só você dar um include em suas paginas php, isto facilita muito, pois caso haja necessidade de mudar seu Banco de Dados você altera somente um arquivo*/ ?> <<<<cidades.ajax>>>>>> <?php header( 'Cache-Control: no-cache' ); header( 'Content-type: application/xml; charset="utf-8"', true ); $con = mysql_connect( 'localhost', 'root', '' ) ; mysql_select_db( 'adm_cidadeestado', $con ); $cod_estados = mysql_real_escape_string( $_REQUEST['cod_estados'] ); $cidades = array(); $sql = "SELECT cod_cidades, nome FROM cidades WHERE estados_cod_estados=$cod_estados ORDER BY nome"; $res = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $res ) ) { $cidades[] = array( 'cod_cidades' => $row['cod_cidades'], 'nome' => (utf8_encode($row['nome'])), ); } echo( json_encode( $cidades ) ); pagina cadastro: https://drive.google.com/file/d/0Byt3zZKPeOw1LWozRGhaZ3JiUk0/edit?usp=sharing Pagina de busca que retorna dados, no combo de cidades repara como quero que fica já populado com o uf e a cidade cadastrada, assim se o usuario quiser alterar é so mudar a opção normalmente igual no cadastro: https://drive.google.com/file/d/0Byt3zZKPeOw1dEtPakxSZXl2OHc/edit?usp=sharing todos: https://drive.google.com/folderview?id=0Byt3zZKPeOw1LWpRY20ycVp5eDA&usp=sharing Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 8, 2014 Willian, vai ficar mais ou mesnos assim? pego a placa por post busco o uf e depois listo todos uf e comparo com o cadastrado e deixo o mesmo selecionado? <?php Include "conexãocidadeestado.php"; //conexão if ($_SERVER['REQUEST_METHOD'] == 'POST'){ // query de consulta estado cadastrado a partir da placa $sql = "SELECT * FROM `veiculos` WHERE `ufemplacamento` LIKE '".$_POST['nome']."%' GROUP BY id ASC"; $executar = mysql_query($sql); while ($linha = mysql_fetch_array($executar))//{ $ufemplacamento = ".$linha['ufemplacamento'].";//} // Segundo query busca todos estados $sql = "SELECT cod_estados, siglaFROM estadosORDER BY sigla"; while ( $row = mysql_fetch_assoc( $res ) ) { $selected = $ufemplacamento === $row['sigla'] ? ' selected="selected"' : ''; echo '<option value="'.$row['cod_estados'].'"'.$selected.'>'.$row['sigla'].'</option>'; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 8, 2014 Ixi.. não sei cara, isso depende de como o seu sistema funciona. Não estou mais entendendo o fluxo que vc quer seguir. Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 8, 2014 Ixi.. não sei cara, isso depende de como o seu sistema funciona. Não estou mais entendendo o fluxo que você quer seguir. E estou querendo fazer um select na tabela de veiculos, pegar os valores de estado e cidades cadastradas e comparar com a lista geral e deixar o cadastrado selecionado, do jeito que vc me ensinou que coloquei abaixo ta dando certo, mas quero obter esse valor '20' por uma pesquisa. segue abaixo. <select name="cod_estados" class="uf_cidades" id="cod_estados"> <option value=""></option> <?php include "conexaocidadeestado.php";//conectando com o banco de dados //if ($_SERVER['REQUEST_METHOD'] == 'POST'){ // query de consulta estado cadastrado a partir da placa //$sql = "SELECT * FROM `veiculos` WHERE `ufemplacamento` LIKE '".$_POST['nome']."%' GROUP BY id ASC"; //$executar = mysql_query($sql); //while ($linha = mysql_fetch_array($executar))//{ //$ufemplacamento = ".$linha['ufemplacamento'].";//} $sql = "SELECT cod_estados, sigla FROM estados ORDER BY sigla"; $res = mysql_query( $sql ); $_estado_db = '20'; while ( $row = mysql_fetch_assoc( $res ) ) { $selected = $_estado_db === $row['cod_estados'] ? ' selected="selected"' : ''; echo '<option value="'.$row['cod_estados'].'"'.$selected.'>'.$row['sigla'].'</option>'; } ?> </select> </select> / <select name="cod_cidades" class="cidades" id="cod_cidades"> <option value="">Escolha um estado</option> </select> <span class="carregando" style="display:none;"><img align="absmiddle" height="15" src="../../imagens/loading.gif"></span></td> Ou seja preciso puxar essa variavel '20' do db, mas não estou conseguindo dar dois selects no mesmo código php. Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Julho 10, 2014 https://drive.google.com/folder/d/0Byt3zZKPeOw1ZW9BWDRFWDR2NnM/edit Willia, vc se me ajuda esse pasta do drive tem meus 3 arqyivos. 1 preciso que este valor $( cod_estados ).val( json.cod_estados ); que vem do db substitua essa variavel $_estado_db = '20'; para fazer uma comparacçao de valores e deixar o do db exibido no combo para alteraçao Compartilhar este post Link para o post Compartilhar em outros sites