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 Anonicah
      Olá preciso de ajuda com esse exercício. Montei até a parte de formulário + validação de javascrip no dreamweaver mas buguei com o resto. O que eu fiz:
       

      <html>
      <head>
      <title> Formulário CPF validado com Java Script </title>
          
          <script language="javascript" type="text/javascript">
      function validar() {
      var cpf = form1.cpf.value;
          
      if (cpf == "") {
      alert('Preencha o campo com seu cpf');
      form1.cpf.focus();
      return false;
      }
          
      }
      </script>
          
          
      </head>
      <body>
      <form name="form1" action="enviar.php" method="post">
      CPF:
      <input name="cpf" type="text"><br /><br />
      <input type="submit"  onclick="return validar()">
      </form>
      </body>
      </html>
       
       
      EXERCÍCIO
      Criar um formulário simples em html com um único campo CPF;
      Fazer uma validação em javascript antes de fazer o post;
      Consumir o WS https://bi.vidaclass.com.br/utils para consultar informações do CPF enviado pelo form;
      Do retorno obtido exibir na tela:
      Nome, email, telefone
      Se tem compra em saude: Sim | Não
      Quantas compras: (5) ex.
      Se tem farma: Sim | Não
      Se tem dependente: Sim | Não
      Qtd. de dependentes: (2) ex.

      Obtem o token para consumir os endpoints;
      https://bi.vidaclass.com.br/auth
      {
          "company_id": 1,
          "username": "webmaster@vidaclass.com.br",
          "password": "Teste20170705"
      }
      Endpoint para consultar o CPF
      https://bi.vidaclass.com.br/utils
      {
          "action": 4,
          "key": {
              "cpf": 25383193820
          }
      }
    • By iagomonteiro
      Estou criando um jogo de cartas em web, o jogo é bem estilo HS, e estou tendo problemas para adicionar condições de movimentação no drag and drop. Como vocês podem ver eu tenho uma variável mana, e a movimentação das cartas só seria possível de acordo com ela, porém quando adiciono as condições o D&D acaba nem se movimentando mais, pensei em chamar cada função do d&d dentro de uma condição, mas também não funcionou, alguém pode ajudar?
       
      JS
      // Jogador 1
      const fillplace1 = document.querySelector('#fillplace1');
      const fillplace2 = document.querySelector('#fillplace2');
      const fillplace3 = document.querySelector('#fillplace3');
      var fill;
      const empties = document.querySelectorAll('.empty');
      fillplace1.addEventListener('dragstart', enterstart);
      fillplace2.addEventListener('dragstart', enterstart);
      fillplace3.addEventListener('dragstart', enterstart);
      for (const empty of empties) {
          empty.addEventListener('dragover', dragOver);
          empty.addEventListener('dragenter', dragEnter);
          empty.addEventListener('dragleave', dragLeave);
          empty.addEventListener('drop', dragDrop);
      }
      function enterstart(){
          fill = this;
      }
      function dragOver(e) {
          e.preventDefault();
      }
      function dragEnter(e) {
          e.preventDefault();
          this.className += ' hovered';
      }
      function dragLeave() {
          this.className = 'empty';
      }
      function dragDrop(id) {
          this.className = 'empty';
          this.append(fill);
      }
       
      HTML
      <link rel="stylesheet" href="../css/jogar.css" />
       
      <div id="barraGeneral">
          <img src="../imagens/Campo/barraGeneralalfa.png" id="imggeneral" />
      </div>
       
      <div id="persona">
          <img src="../imagens/Personagem/cucapersonagem.png" id="imgpersonagem" />
      </div>
       
      <button id="btpassar" onclick="cont();">Passar Rodada</button>

      <H1 id="campomana">1</H1>
       
      <!-- Mesa das cartas jogador 1-->
      <div class="empty" id="emptyplace1">
      </div>
      <div class="empty" id="emptyplace2">
      </div>
      <div class="empty" id="emptyplace3">
      </div>
      <div class="empty" id="emptyplace4">
      </div>
      <div class="empty" id="emptyplace5">
      </div>
       
      <!-- Mão do jogador 1 -->
      <div class="emptyhand1">
          <div class="fill" draggable="true" id="fillplace1">
              <img src='../imagens/Sorteio/aa.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand2">
          <div class="fill" draggable="true" id="fillplace2">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand3">
          <div class="fill" draggable="true" id="fillplace3">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
    • By Anderson Maciel
      Boa tarde pessoal,

      Estou quebrando a cabeça para resolver um problema, tenho uma div dinâmica que carrega uma <table> em uma das colunas deveria apresentar o componente Switchery, esta <table> é montada a partir de uma função PHP que faz o select em uma tabela do banco de dados conforme abaixo:
       
      echo '<table class="table table-hover"> <thead> <tr> <th>Nome</th> <th>Agrupamento</th> <th>Ativo</th> </tr> </thead> <tbody>'; foreach($data as $row) { If ($row['ativo'] == 1) {$vativochk = "checked";} else {$vativochk = "";} echo '<tr> <td>'.$row['nome'].'</td> <td>'.$row['agrupamento'].'</td> <td><input type="checkbox" name="ativo_grid" class="js-switch" '.$vativochk.' disabled="disabled"></td> </tr>'; } echo ' </tbody> </table>'; Aqui está o Ajax que chama e retorna atualizando a DIV:
      //funcoes do grid dos graficos function atualiza_grid_graficos() { $.ajax({ type: "POST", url: "hubfuncind.php", data: { id_tabindicadores_paineis: $('#id_tabindicadores_paineis').val(), acao: "gridgraficos" }, success: function(data) { $('#conteudo').html(data); } }); } O retorno vem certinho, mas apenas o componente Switchery está vindo desconfigurado, ou seja vem um checkbox normal (html).

      O que é mais incrível é que neste mesmo formulário mais acima tenho este mesmo componente funcionando normalmente, somente dentro da DIV dinâmica é que fica desconfigurado conforme imagem anexa.

      Será que alguém já passou por isso?

×

Important Information

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