Eu peguei o script de uma requisição ajax na WEB, e a usei para receber o resultado de uma pesquisa com tres termos em uma DIV, mas quando uso o type="button" no na tag button o resultado são todos os aquivos da tabela usuarios, quando eu consulto sem o type="button", ele me retorna a consulta correta,abrindo a pagina "buscar.php" por fora da DIV.
Não sei se me fiz entender o que eu quero, mas estou postando o codigos usados para que os amigos possam me dar uma luz de onde estou errando.
Pagina de consulta:
<?php
include "../conexao.php";
?>
<div align="center">
<form action="../arquivos/buscar.php" method="POST">
<select id="servico" name="servico">
<option>Serviços</option>
<option>Eletricista</option>
<option>Babá</option>
<option>Pedreiro</option>
</select>
<select id="uf" name="uf">
<option>Estado</option>
</select>
<select id="cidade" name="cidade">
<option>Cidade</option>
</select>
<button id="buscar">Buscar</button> <!-- type="button" -->
</form>
<img style="width:100%; max-width:512px;" src="img/poster.jpg" alt="">
<div id="dados"><!-- Aqui aparecerá os dados buscados... --></div>
</div>
<script src="../js/ajax.js"></script>
<script src="../js/app.js"></script>
Codigo ajax.js
<script>
function buscar(servico, uf, cidade)
{
var page = "../arquivos/buscar.php";
$.ajax
({
type: "POST",
dataType: "html",
url: page,
beforeSend: function () {
$("#dados").html("Carregando...");
},
data: {servico: servico, uf: uf, cidade: cidade},
success: function (msg)
{
$("#dados").html(msg);
}
});
}
$("#buscar").click(function () {
buscar($("#servico", "#uf", "#cidade").val())
});
</script>
Pagina da resposta:
<?php
include "../conexao.php";
// Inicializa as variáveis de busca
$busca1 = $_POST['servico'] ?? '';
$busca2 = $_POST['uf'] ?? '';
$busca3 = $_POST['cidade'] ?? '';
// Monta a consulta SQL dinamicamente
$sql = "SELECT * FROM usuarios WHERE 1=1"; //Tabela cadastro (Wamp) ou usuarios (MegaHost)
$params = [];
if (!empty($busca1)) {
$sql .= " AND servico LIKE :servico";
$params[':servico'] = "$busca1"; // Usando LIKE para buscas parciais
}
if (!empty($busca2)) {
$sql .= " AND uf LIKE :uf";
$params[':uf'] = "$busca2";
}
if (!empty($busca3)) {
$sql .= " AND cidade LIKE :cidade";
$params[':cidade'] = "$busca3";
}
// Prepara e executa a consulta
$stmt = $conn->prepare($sql);
$stmt->execute($params);
// Obtém os resultados
$resultados = $stmt->fetchAll();
// Exibe os resultados
echo "<div align='center'>";
if ($resultados) {
echo "<h2>Resultados da Busca</h2>";
echo "<table class='table table-striped table-advance table-hover'>";
echo "<tbody>";
echo "<tr>";
echo "<th><i class='icon_profile'></i> Nome</th>";
echo "<th><i class='icon_profile'></i> Serviço</th>";
echo "<th><i class='icon_profile'></i> Estado</th>";
echo "<th><i class='icon_profile'></i> Cidade</th>";
echo "</tr>";
foreach ($resultados as $resultado) {
echo "<tr>";
echo "<td>" . htmlspecialchars($resultado['nome']) . "</td>";
echo "<td>" . htmlspecialchars($resultado['servico']) . "</td>";
echo "<td>" . htmlspecialchars($resultado['uf']) . "</td>";
echo "<td>" . htmlspecialchars($resultado['cidade']) . "</td>";
echo "</tr>";
echo "</tbody>";
}
echo "</table>";
} else {
echo "<p>Nenhum resultado encontrado.</p>";
}
echo"<br><br>";
echo"<a href='../inicio.php'>Voltar para o formulário</a>";
echo "</div>"
?>
Desde já agredeço a atenção dos amigos, e no aguardo de alguma resposta que possa me ajudar a fazer o resultado retorna dentro da DIV id="dados",
obrigado!!!