How do I print array on screen, segment and location chosen, one at a time?

0
<div class="col-md-2 col-sm-2">

    <form method="post" action="atracoes_resultados.php">
        <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="csg[]" value="cidade"> Cidade<br>
        <input type="checkbox" name="csg[]" value="estrada"> Estrada AM 352<br>
        <input type="checkbox" name="csg[]" value="rio"> No Rio Negro<br>
        <input type="checkbox" name="csg[]" value="anavilhanas"> No Parque Anavilhanas<br>
        <input type="checkbox" name="csg[]" value="jau"> No Parque Jaú<br><br>
        <input type="hidden" name="acao" value="enviar" />
        <input id="submeter" type="submit" value="Busca">
        </h3>
    </form>  
    <br>                            
</div><!-- form -->
<div class="col-md-2 col-sm-2 lateral"> 
<?php
    if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){        
    if(!empty($_POST['csg'])){
        $campo = $_POST['csg'];
        foreach($campo as $value){  
                $banco = mysql_query("SELECT * FROM atracoes WHERE segmento  LIKE '%$value%'"); 
                    while($lnbusca = mysql_fetch_array($banco)){    
?>
<?php

                        echo '<img src="'.$lnbusca['thumb'].'" height="50" width="150" class="img-responsive">';
                        ?>
                        <a href="emitir_recibos.php?id=<?php echo $lnbusca['id']; ?>" target="_blank"><FONT face="verdana" COLOR="#996633" class="clicavel"><?php echo $lnbusca['segmento']; ?><?php echo " e "; ?><?php echo $lnbusca['localidade']; ?></font></a>     
                        <?php
                        echo '<hr>';            

                        ?>


<?php

                    }
                            }
                                }
    else{
        echo "<h1>Atração não selecionada</h5>";
    }//-- empty --/
    }//-- isset --/
?>

</div>
    
asked by anonymous 06.12.2017 / 06:43

1 answer

0

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.

    
06.12.2017 / 20:50