Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gugu3699

carregar select com dados para alteração

Recommended Posts

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

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

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

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

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

Em qual tabela vc grava o que o usuário escolhe ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

Então use a placa.. eu não conheço seu sistema... =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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, sigla
FROM estados
ORDER 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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.