-1
Good morning, I would like my JSON filtering to also search if what I searched indicates that it is "true" or "false.
I use this array to search the file:
<?php
session_start();
error_reporting(0);
//função para filtrar os anúncios
function filtroAnuncio($filtro, $dados){
$nome = strtolower($dados["nome"]) ;
$nomeConveniado = strtolower($filtro["nomeConveniado"]) ;
if( ($filtro["cidade"] == "" || $filtro["cidade"] == $dados["cidade"]) &&
($filtro["servico"] == "" || $filtro["servico"] == $dados["servicos"]) &&
($filtro["especialidade"] == "" || $filtro["especialidade"] == $dados["especialidade"]) &&
($filtro["nomeConveniado"] == "" || strrpos($nome, $nomeConveniado) !== false )
) {
return true;
}
return false;
}
$conveniados = array();
$destaques = array();
$servicos = array();
$locais = array();
$especialidades = array();
// necessário utilização de cache
if(empty(@$_SESSION["convs"])){
$convs = json_decode(file_get_contents('#'));
$_SESSION["convs"] = $convs;
}
$convs = $_SESSION["convs"];
foreach($convs as $conv){
$info = array();
$info["nome"] = $conv->nmConveniado;
$info["categoria"] = $conv->listaEspecialidade[0]->nmEspecialidade;
$especialidades[] = $conv->listaEspecialidade[0]->nmEspecialidade;
//estava faltando adicionar campo especilidade
$info["especialidade"] = $conv->listaEspecialidade[0]->nmEspecialidade;
$info["endereco"] = $conv->listaEndereco[0]->nmLogradouro;
$info["bairro"] = @$conv->listaEndereco[0]->nmBairro;
$info["cidade"] = $conv->listaEndereco[0]->nmCidade;
$info["telefone"] = $conv->dsTelefone1;
$locais[] = $conv->listaEndereco[0]->nmCidade;
$info["estado"] = $conv->listaEndereco[0]->sgEstado;
$servicos_str = '';
$k=0;
foreach($conv->listaServico as $serv_str){
$k++;
$servicos[] = $serv_str->nmServico;
if($k==count($conv->listaServico)){
$servicos_str .= $serv_str->nmServico;
} else {
$servicos_str .= $serv_str->nmServico.', ';
}
}
$info["servicos"] = $servicos_str;
//adicionado informação de destaque no array
$info["flDestaqueSite"] =$conv->flDestaqueSite;
$info["imagem"] = $conv->listaImagem[0]->nmArquivo;
$conveniados[] = $info;
if($conv->flDestaqueSite){
$destaques[] = $info;
}
}
$_especialidades = array_unique($especialidades);
$_servicos = array_unique($servicos);
$_locais = array_unique($locais);
asort($_especialidades);
asort($_servicos);
asort($_locais);
?>
But I would like to add a true, because in JSON file it displays this way when the name has to appear:
"flDestaqueSite": "True"
This is the display code:
<!-- Lista -->
<?php $d=0; ?>
<!--<?php shuffle($destaques); ?>-->
<?php
usort($destaques, function($a, $b){
if($a["flDestaqueSite"] == $b["flDestaqueSite"] ) return 0;
return ($a["flDestaqueSite"] < $b["flDestaqueSite"] ) ? 1 : -1;
});
foreach($destaques as $destaque){ ?>
<?php
//filtra os anúncio que não corresponde aos criterios
if(filtroAnuncio($_POST, $destaque)==false) continue;
$d++;
if($d<=5)
{
?>
<div class="col-lg-12 col-md-12" local="<?php echo $destaques["cidade"]; ?>">
<div class="listing-item-container list-layout">
<a href="#conteudo" class="listing-item">
<!-- Imagem -->
<div class="listing-item-image">
<?php if($destaque["imagem"] != ''){ ?>
<img data-cfsrc="<?php echo $destaque["imagem"]; ?>" alt="<?php echo $destaque["nome"]; ?>" style="display:none;visibility:hidden;"><noscript><img src="<?php echo $destaque["imagem"]; ?>" alt="<?php echo $destaque["nome"]; ?>"></noscript>
<?php } else { ?>
<img data-cfsrc="images/sem-imagem.jpg" alt="<?php echo $destaque["nome"]; ?>" style="display:none;visibility:hidden;"><noscript><img src="images/sem-imagem.jpg" alt="<?php echo $destaque["nome"]; ?>"></noscript>
<?php } ?>
<span class="tag"><?php echo $destaque["categoria"]; ?></span>
</div>
<!-- Conteúdo -->
<div class="listing-item-content">
<div class="listing-badge anunciante">Anunciante</div>
<div class="listing-item-inner">
<h3><?php echo $destaque["nome"]; ?> <i class="verified-icon"></i></h3>
<span><?php echo $destaque["telefone"]; ?></span></br>
<span><?php echo $destaque["endereco"]; ?>, <?php echo $destaque["bairro"]; ?>, <?php echo $destaque["cidade"]; ?> - <?php echo $destaque["estado"]; ?></span>
</div>
</div>
</a>
</div>
</div>
<?php } ?>
<?php } ?>
The problem is that it comes as string, not as boolean? It was very confusing your question.
– Woss
And then @Andersoncarloswoss my question is that, when I put in my search shows results that were not meant to display, are separated by normal highlights and advertisers, only that my search does not identify whether it is true or false
– Everton Gouveia
And what is the filter code? can you put it in the question?
– Woss
@Andersoncarloswoss, added.
– Everton Gouveia