I made a jQuery Ajax request from the form page to the file that connects to the database. Using the JSON result to "write" to a DIV.
HTML Page:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script><scriptsrc="eventos.js"></script>
</head>
<body>
<form method="post" id="form-seg-loc">
<h4>Escolha o Segmento:</h4>
<input type="checkbox" name="csg[]" value="ecologico"> Ecológico<br>
<input type="checkbox" name="csg[]" value="cultural"> Cultural<br>
<input type="checkbox" name="csg[]" value="religioso"> Religioso<br>
<input type="checkbox" name="csg[]" value="rural"> Rural<br><br>
<h4>Escolha a Localidade:</h4>
<input type="checkbox" name="loc[]" value="cidade"> Cidade<br>
<input type="checkbox" name="loc[]" value="estrada"> Estrada AM 352<br>
<input type="checkbox" name="loc[]" value="rio"> No Rio Negro<br>
<input type="checkbox" name="loc[]" value="anavilhanas"> No Parque Anavilhanas<br>
<input type="checkbox" name="loc[]" value="jau"> No Parque Jaú<br><br>
<input type="hidden" name="acao" value="enviar" />
<input id="submeter" type="submit" value="Busca">
</form>
<div id="resultado-seg-loc"></div>
</body>
</html>
events.js:
$(document).ready(function(){
$("#form-seg-loc").on("submit", function(e){
e.preventDefault();
var dadosForm = $(this).serialize(); //nesse escopo, this é o formulário
$.ajax({
type: "post",
url: "atracoes_resultados.php",
dataType: "json",
data: dadosForm,
success: function (response) {
var res = "";
$.each(response.resultados, function(item){
//this é a posição atual do json
res += "<p>Nome 1: " + this.nome1 + "</p>" +
"<p>Segmento: " + this.segmento + "</p>" +
"<p>Nome 2: " + this.nome2 + "</p>" +
"<p>Localidade: " + this.localidade + "</p>" +
"<hr>";
});
$("#resultado-seg-loc").html(res);
},
error: function (response) {
console.error(response);
alert('Erro na requisição dos dados. Atualize a página');
}
});
return false;
});
});
connect_db.php :
<?php
$db = new PDO("mysql:host=localhost; dbname=SEMTUR; charset=utf8;", "USUARIO", "SENHA", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
attracts_results.php:
<?php
require_once("connect_db.php"); //informe o caminho do arquivo caso não esteja no mesmo diretório
$seg = isSet($_POST["csg"]) ? $_POST["csg"] : null;
$loc = isSet($_POST["loc"]) ? $_POST["loc"] : null;
//caso o usuário não envie nada, pára a página
if($seg == null && $loc == null){
exit();
}
/* MONTA A QUERY */
$optseg = "SELECT * FROM 'atracoes' WHERE (";
//parte da consulta para SEGMENTO
if($seg != null){
for($i = 0; $i < count($seg); $i++){
$optseg .= "segmento = \"" . $seg[$i]."\"";
if($i < count($seg)-1)
$optseg .= " OR ";
else
$optseg .= ")";
}
}
//condição para saber se é preciso adicionar um AND na consulta
if($seg != null && $loc != null){
$optseg .= " AND (";
}
//parte da consulta para LOCALIDADE
if($loc != null){
for($i = 0; $i < count($loc); $i++){
$optseg .= "localidade = \"" . $loc[$i]."\"";
if($i < count($loc)-1)
$optseg .= " OR ";
else
$optseg .= ")";
}
}
$query = $db->prepare($optseg);
$query->execute();
$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode(
array(
"resultados" => $resultado
)
);
?>
Based on the information provided, this code resolves the issue with some adaptations due to the limitation of what it could be informed of.