Ir para conteúdo

Arquivado

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

diegouploads

jQuery Estado não retorna Cidade

Recommended Posts

Tem uns 2 dias que venho batendo cabeça com os campos Estado e Cidade.. pois vi inúmeras aulas e maneiras de fazer, porém nenhuma me retorna a cidade no campo dela. Tenho meus arquivos em pastas divididas, penso que pode ser isso, outro problema pode ser que to utilizando mysqli, já que o mysql não esta mais aceito, mas acredito estar tudo correto no Mysqli. O problema é que quando o codigo javascript roda não retorna a cidade.

segue codigo html formulario

 

<select id="estados" name="estados">
<option value="" select="select">Escolha a estado</option>
<?php
$conectar=new DB;
$conexao=$conectar->conectar();
$sql = mysqli_query($conexao, "SELECT * FROM estados");
while($row=mysqli_fetch_array($sql)){
$id=$row['cod_estados'];
$uf=$row['sigla'];
$nome=$row['nome'];
echo '<option value="'.$row['cod_estados'].'">'.$row['sigla'].'</option>';
}
?>
</select>
<select name="cidades" id="cidades">
<option value="">-- Escolha um Estado --</option>
</select>
segue codigo javascript
//JavaScript Document
$(function(){
$("#estados").change(function(){
var id = $(this).val();
$.ajax({
type:"POST",
url:"views/exibe_cidade.php?id="+id,
dataType:"text",
sucess: function(res){
alert("passei aqui");
$("#cidades").children(".cidades").remove();
$("#cidades").append(res);
}
});
});
});
segue código da pagina exibe_cidade
<?php
include("header.php");
include("class/DBclass.class.php");
$conectar=new DB;
$conexao=$conectar->conectar();
$id = $_GET['id'];
$sql = mysqli_query($conexao, "SELECT * FROM cidades WHERE estados_cod_estados='$id' ORDER BY nome");
while($row=mysqli_fetch_array($sql)){
$nome=$row['nome'];
$id=$row['cod_cidades'];
echo '<option value="'.$id.'" class="cidade">'.$nome.'</option>';
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me diz ai, retorna algum erro ? Vê ai e me diz. Enquanto você analisa, vê essa linha aqui: url:"views/exibe_cidade.php?id="+id. Creio que a concatenação está errada, não precisa fechar aspas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que percebo aqui debugando, parece que o javascript não consegue chamar o exibe_cidade.php, então não recebe o id assim não faz o query.. por isso não retorna, não sei se na função Ajax esta passando corretamente..... mas na concatenação esta tudo ok.

//JavaScript Document
$(document).ready(function (){
$("#estados").change(function(){
var id = $(this).val();
$.ajax({
type: "POST",
url:"views/exibe_cidade.php?id="+id,
dataType:"text",
sucess: function(res){
$("#cidades").children(".cidades").remove();
$("#cidades").append(res);
},
error: function() {
console.log("Ocorreu um erro ao carregar os dados.");
}
});
});
});

arquivo exibe_cidade.php


<?php

include("../classes/DB.class.php");


$conectar=new DB;
$conexao=$conectar->conectar();


$id = $_GET['id'];
$sql = mysqli_query($conexao, "SELECT * FROM cidades WHERE estados_cod_estados='$id' ORDER BY nome");
while($row=mysqli_fetch_array($sql)){
$nome=$row['nome'];
$id=$row['cod_cidades'];


echo '<option value="'.$id.'" class="cidade">'.$nome.'</option>';

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por FabianoSouza
      Eu preciso exibir duas informações em minha consulta:
      1) A quantidade de pessoas inscritas numa turma de treinamento (isso é feito com um simples COUNT)
      2) Uma flag de excesso de inscrições na turma. Seria obtido pela comparação entre a quantidade máxima permitida (já existe esse campo) e o COUNT feito acima.
       
      Até aqui sem problemas.
       
      O que quero é evitar fazer duas contagens (1 para saber a quantidade de inscritos, e outra para gerar a flag de excesso de inscrições).
       
      Há uma forma de utilizar UMA contagem para atender as duas necessidades?
       
      Meu código está assim:
       
      ... --AQUI FAZ A COMPARAÇÃO PARA GERAR A FLAG DE EXCESSO DE INSCRIÇÕES , CASE WHEN (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) > T.lotacaoMax Then T.nome + '&nbsp;'+'<span class=%22icon-aviso fcolor-critico%22 style=%22font-size:18px%22 title=Excesso&nbsp;de&nbsp;inscrições></span>' --AQUI FAZ A CONTAGEM DE INSCRIÇÕES , (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) AS 'Inscrições'  
    • Por FabianoSouza
      Possuo uma coluna de data.
      Eu gostaria que os registros com datas futuras aparecessem no topo do meu select, em relação aos demais registros.
      Em seguida, gostaria que somente esses registros com datas futuras ficassem em ordem crescente.
      Algo como 
       
      João  | 16/11/2023
      Maria | 17/11/2023
      José  |  20/11/2023
       
      -----------------------------
      (demais registros da base)
      Antônio   |  20/05/2023
      Rosa        | 15/08/2023
      Cida         | 15/10/2022
      Pedro      |  20/05/2021
      Paulo      |  14/11/2020
       
      O select seria esse.
      select dbo.formataData(ET.dataInicial) AS 'data' FROM dbo.tab AS ET GROUP BY ET.dataInicial  
    • Por ILR master
      Salve galera.
       
      Vou publicar um evento e quero colocar um Cronômetro regressivo que mostre em tempo real os dias, horas e minutos que faltam para determinada data, tipo:.
      Faltam 5 dias, 12:30:00 para inauguração.
       
      Qdo chegar no dia, quero que apenas apareça uma mensagem.
       
      Alguém pode me ajudar?
    • Por ment0r
      Boa noite pessoal, tudo bem?
       
      Estou desenvolvendo um sistema simples com exibição de formulário via modal. Uma vez cadastrado o serviço (tabela possui apenas dois campos, id e nome), eles são exibidos numa tabela com um ícone que permite a alteração do nome.

       
      Eu clico no ícone e é chamado um modal que é gerado via ajax (pois são vários registros).
       

       
      Nesse modal é mostrado o serviço e uma vez alterado, o botão Salvar chama uma função que atualiza a tabela servico, concluindo a tarefa. Fiz o mesmo processo pra cadastrar o serviço, com a diferença de que o modal está presente na mesma página, ou seja, não é chamado via ajax.
       
      Eis os códigos:
      <a href="#" onclick="modalUpdate(<?= trim($array['id']) ?>)"> <i class='bx bx-edit'></i> </a> // Trecho onde eu chamo a função modalUpdate. Função btAltServico click:
      $('#btAltServico').click(function() { var inpnome = $('#nome'); var inpid = $('#id'); if (inpnome.val() == '') { swal("Atenção", "Por favor, preencha os campos obrigatórios", "warning"); if (inpnome.val() == '') { inpnome.css("border","2px solid #f94545"); } else { inpnome.css("border",""); } alert(inpnome); alert(inpid); } else { $.ajax({ url: '../inc/ajax/altServico.php', type: 'post', dataType: 'json', // pode ser html data: { nome : inpnome.val(), id : inpid.val() }, success: function(resposta){ if (resposta == 1) { inpnome.val(""); inpnome.css("border",""); swal("Sucesso", "Serviço alterado", "success"); } else { if (resposta == 0) { swal("Erro", "Serviço não alterado. Log de erro gerado.", "error"); } else { swal("Atenção", "Serviço já cadastrado", "warning"); } } } }) } });  
      E modalUpdate.php :
       
      <?php /* * altServico.php * * Script responsável pelo update de serviços na tabela servico * * Função chamada pelo arquivo ajax.js */ //if ($_POST) { require'../conn.php'; require'../../class/class.geral.php'; $geral = new Geral(); $nome = $_POST['nome']; $id = $_POST['nome']; $ativo = 1; // Verifica se o servico já foi cadastrado $sqlVer = "select nome from algo68_db_cliente.servico where nome = '".$nome."' and id <> ".$id.""; $queryVer = mysqli_query($conn, $sqlVer); $resultVer = mysqli_num_rows($queryVer); if ($resultVer > 0) { echo json_encode(2); // servico já cadastrado } else { // Update do servico $sql = "update algo68_db_cliente.servico set nome = '".$nome."', ativo = ".$ativo." where id = ".$id; $query = mysqli_query($conn, $sql); $result = mysqli_affected_rows($conn); if ($result > 0) { echo json_encode(1); // alterou o servico } else { $geral->logErro(date('d/m/Y|H:i:s'), @$_SERVER[REQUEST_URI], 'AlterarServico', mysqli_error($conn)); echo json_encode(0); // não alterou o servico } } //} ?> O problema é que quando clico no botão Salvar, não acontece nada - se eu colocar um alert qualquer na função click, só pra saber se está chegando, também não da nada. E está da mesma forma que o cadastro de serviço, que funciona perfeitamente.

      Bom, é isso pessoal, tentei ser o mais breve e especifico possível. Qualquer ajuda é bem vinda, obrigado a todos, desde já.
×

Informação importante

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