Jump to content
oomaikoo

Comparar variável no IF, ELSE

Recommended Posts

Boa noite pessoal, estou tentando fazer um código, para mostrar um banner em meu site, quando o usuário entrar, baseado na localização dele. É basicamente o seguinte: a API de geolocalização retorna o nome da cidade, e, se for a cidade, então mostre o banner. Se não for, mostre outro. O código JavaScript que estou usando é esse:

<script type="application/javascript">
    function geoip(json){
        var city = document.getElementById("user_city");
        city.textContent = json.city;
    }
</script>
<script async src="https://get.geojs.io/v1/ip/geo.js"></script>
A cidade é: <span id="user_city"></span> 



Esse código retorna o nome da cidade no <span id>.

Porém eu preciso fazer um IF, ELSE no próprio JavaScript, para mostrar o banner ou não. Seria basicamente assim:

<script type="application/javascript">
    function geoip(json){
        var city = document.getElementById("user_city");
        city.textContent = json.city;
    }
	
	if (city == "nomedacidade") {
	document.write ("<img src='banner1.jpg'></img>");
	}
	else {
	document.write ("<img src='banner2.jpg'></img>");
	}
	
</script>
<script async src="https://get.geojs.io/v1/ip/geo.js"></script> 



O problema é que a variável city não fica setada dentro do if, não retorna o nome da cidade, eu só queria comparar no if o nome da cidade com o que a API retorna.
Alguém tem alguma ideia?

Share this post


Link to post
Share on other sites

E pq você não coloca esse if / else dentro da function ?. Bom, se não quiser .. tenta isso (Não testei, mas deve funcionar):

 

function geoip ( json )
{
    var city = document.getElementById("user_city");
    city.textContent = json.city;

 

    verifyCity ( json.city ) // Cria e chama uma func que faz essa verificação
}

 

function verifyCity ( cityName )
{
    if ( cityName === "nomedacidade" )
    {
        document.write ("<img src='banner1.jpg'></img>")
    }
    else
    {
        document.write ("<img src='banner2.jpg'></img>")
    }
}

Share this post


Link to post
Share on other sites

Não funcionou, não retorna nada :/

<script type="application/javascript">
function geoip ( json )
{
    var city = document.getElementById("user_city");
    city.textContent = json.city;

 

    verifyCity ( json.city ) // Cria e chama uma func que faz essa verificação
}


function verifyCity ( cityName )
{
    if ( cityName === "Maceió" )
    {
        document.write ("Estou em Maceió")
    }
    else
    {
        document.write ("Não estou em Maceió")
    }
}
</script>
<script async src="https://get.geojs.io/v1/ip/geo.js"></script>

 

Share this post


Link to post
Share on other sites

Você pode remover esse " var city  " e deixar apenas  city = 

city = document.getElementById("user_city")  

Quando você declara a variavel dentro da função com a palavra "var antes", ela nao vai poder ser usada fora da função.

se declarar sem isso, então pode usar.

Share this post


Link to post
Share on other sites
1 hora atrás, oomaikoo disse:

Não funcionou, não retorna nada :/

 

Você ta chamando as funções ? olha:

 

<!DOCTYPE html>
<html lang="pt-BR">
 
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
 
<title> iMasters </title>
 
<style>
 
* { margin: 0 ; padding: 0 ; box-sizing: border-box ; }
 
</style>
</head>
 
<body>
 
</body>
 
<script>
 
window.onload = () => {
 
let json = { city : "São paulo" } // Simulando o recebimento de um json
 
function geoip ( json )
{
document.write ( json.city ) // o json do parametro
checkCityName ( json.city )
}
 
function checkCityName ( name )
{
if ( name === "Maceió" )
{
console.log ( 'Estou em Maceió' )
}
else
{
console.log ( 'Não estou em Maceió, estou em', name )
}
}
 
geoip ( json ) // chamando a função
}
 
</script>
</html>

Share this post


Link to post
Share on other sites

@_FelipeOlvr Cara não consegui de forma alguma, você pode me ajudar por mensagem? é que sou leigo em Javascript. Essa função eu só consigo fazer em PHP. Estou precisando urgente para entregar esse pequeno script funcionando amanhã, agradeceria muito se pudesse me ajudar, sei que é simples pra você.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By asacap1000
      Galera me ajudem por favor, estou pirando kkkkk
       
      Seguinte, tenho um form que realiza o submit via javascrit enviando os dados para uma página php formatada em json.
      Está gravando perfeitamente porém preciso dos dados do retorno, como Link do boleto, e alguns outros resultados para inserir no banco nesse ponto já pesquisei um monte testei de tudo até a página bugar e nada kkkk
       
      o Script que utilizo para o envio é esse:
       
      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $("#frmBoleto").submit(function(){ $.ajax({ type: "POST", url: "https://www.sitedaloja.com.br/action/boleto_bradesco/gerando_boleto.php", data: $(this).serializeArray(), }).done(function( msg ) { }); return false; }); </script> Como fazer para capturar os dados  da resposta do json?  
    • By Sapinn
      Salve salve! Nuca intendi como isso realmente funciona por isso gostaria da ajuda de vcs. Estou desenvolvendo um sistema de historias e acho que seria interessante no envio dessas historia além dos texto imagem ilustrativas, mais ou menos como blogs de noticias fazem, mas como posso enviar texto e imagem e depois retorna-los juntos? Eu sei com enviar imagens em php mas gostaria de enviar a imagem e o texto colocando ambos em um textarea acho que assim ficaria bem mais interessante alguém pode me ajuda?
       
    • By clickanapolis
      Boa tarde pessoal, desculpa se postei em lugar errado, mais não sei aonde postar essa minha dúvida. Estou finalizando um projeto que consiste em uma plataforma de processo seletivo e na etapa final os candidatos iram fazer uma prova online.
       
      O cliente me perguntou se é possível bloquear o navegador, tipo se ele sair do navegador ou mudar de aba tipo o sistema finalizar a prova do candidato, visto que o sistema irá identificar que ele foi fazer uma pesquisa.
       
      Eu particularmente não vi nada igual ate hj e não sei se existe algo seja em javascript ou qualquer outro modo de fazer isso.
    • By FilipeON
      Olá Sou iniciante em Javascript... Preciso de ajuda para a seguinte questão:
      Tenho duas FUNÇÕES e preciso executa-las de forma aleatória, já tentei de varias formas, mas sem sucesso, alguém pode me ajudar?
      Basicamente o que preciso é que toda vez que a pagina WEB for carregada uma das duas funções seja sorteada e executada.
       
      As funções são:
      function vt1(){fireEvent (document.getElementById('bt-1'), 'click');} function vt2(){fireEvent (document.getElementById('bt-2'), 'click');}
       
    • By Danilo - Jesus voltará!
      Olá, estou fazendo um cálculo de horas para cartão ponto em php e jquery... o cálculo do php já consegui um satisfatório. Preciso agora ao preencher os campos que são gerados dinamicamente de 1 a 31 que são os dias do mês, ao sair do campo Jornada (horas de trabalho), ele envie via ajax os valores preenchidos nesses 4 campos anteriores que são 4 inputs de tempo (time).
      Eu consegui recuperar individualmente, mas ele passa a chamada da função em todos, se dou um alert por exemplo ele percorre todos os campos dinâmicos para aí ir para o outro input, que no caso acontece a mesma coisa, segue o script que utilizei para pegar o valor do input individual, aí preciso que não percorra todos e pegue apenas o valor de cada um no onblur do campo jornada conforme está na figura e me retorne para os campos específicos com os dados que pegarei no php,. Espero ter sido claro, se alguém puder ajudar eu agradeço.
       
      $(document).ready(function() { $(":input").blur(function() { var id = $(this).attr('id'); var value = $(this).val(); alert(id + " " + " " + value); }); }); O que preciso está na figura abaixo:
       

       
      Aguardo, se alguém puder ajudar...agradeço
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.