Ir para conteúdo

POWERED BY:

Arquivado

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

eriksonsr

Verificando existência de um valor em um JSON com JavaScript/jQuery

Recommended Posts

Bom dia! Alguém pode me dizer qual método do JavaScript ou do jQuery eu uso para verificar se existe um valor em um JSON? No meu caso estou fazendo um select com PHP em um banco de dados e uma das colunas retornadas por este select tem múltiplos valores separados por ponto vírgula, ;, cada um destes valores representa um checkbox em um formulário, então eu preciso ver os valores que existem nesta posição do JSON para fazer que os respectivos checkbox venham marcados.

OBS: Sim, eu sei que uma célula do banco de dados deve ter apenas um valor, mas a base de dados que recebi já venho assim e não modificar ela... ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, ai no caso vc pode verificar com

 

if (dados.pos !== undefined)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não seria para verificar se existe valores dentro do JSON? O que eu precisava verificar seria por exemplo, dentro da posição carros do JSON existem os valores "Volkswagen"; "Fiat"; "Toyota"; "Chevrolet", então eu tenho que ver se existe o valor "Fiat", se existir o checkbox da Fiat deve vir marcado, se existir o valor "Toyota" o seu perspectivo checkbox deve vir marcado também, se não existir o valor "Nissan", então o checkbox da Nissan fica desmarcado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, agora entendi

 

Então cara, roda um loop pelo json. Dentro desse loop você seleciona o check correspondente e marca ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa testar.

 

Se o loop passar por tal valor, marque o check. Estou assumindo que o teu json tem a seguinte estrutura:

[
    'check1',
    'check3',
    'check7',
]
nesse caso, marque o check 1, 3 e 7.

Não precisa testar se existe o check2, pois ele não está no loop, então não faça nada. Apenas marque os que estão.

 

Caso não seja assim, poste um exemplo do teu json.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como vou marcar o check sem testar? O JSON tem essa estrutura:

{"camposInd":[
         {"perspectiva":"Financeira; Clientes; Aprendizagem e crescimento"}
]}

E eu tenho vários checkbox cada um com um dos valores possíveis dentro desta posição do JSON, o nome de cada posição do JSON tem o mesmo nome do atributo name dos checkboxes que o representam e cada um dos checkboxex tem um id igual ou semelhante aos valores dentro da posição do JSON, por exemplo este é um dos checkbox que devem ser marcados conforme o JSON acima:

<input type="checkbox" id="Aprendizagem_e_crescimento" value="Aprendizagem e crescimento" name="perspectiva[]">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim cara:

 

http://wbruno.github.io/examples/check-json/

 

<html>
<head>
    <meta charset="utf8" />
</head>
<body>
    <input type="checkbox" id="Aprendizagem_e_crescimento" value="Aprendizagem e crescimento" name="perspectiva[]" />Aprendizagem<br />
    <input type="checkbox" id="Outra" value="Outra" name="perspectiva[]" />Outra<br />
    <input type="checkbox" id="Clientes" value="Clientes" name="perspectiva[]" />Clientes<br />
    <input type="checkbox" id="Foo" value="Foo" name="perspectiva[]" />Foo<br />
    <input type="checkbox" id="Bar" value="Bar" name="perspectiva[]" />Bar<br />
    <input type="checkbox" id="Financeira" value="Financeira" name="perspectiva[]" />Financeira


<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
var json = {"perspectiva":"Financeira; Clientes; Aprendizagem e crescimento"},
    arr = json.perspectiva.split('; ');

arr.forEach(function(each){
    $("input[name='perspectiva[]'][value='"+each+"']").attr("checked", "checked");
})
</script>
</body>
</html>
meio que não precisa testar nada, nem saber se não existe. Apenas marcar os que estiverem no jSON e pronto.

 

Simples assim :lol:

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.