Запустить PHP без обновления всей страницы
Мой код выглядит вот так:
<?php
$buscarusuario=$pdo->prepare("SELECT * FROM top5 WHERE status = 'ativo' ORDER BY colocacao ASC");
$buscarusuario->execute();
// Exibir com Fetch_Obj
$linha=$buscarusuario->fetchAll(PDO::FETCH_OBJ);
foreach ($linha as $listar) {
?>
<!-- INÍCIO TOP -->
<div class="col-md-12 wow fadeInLeft" data-wow-duration="1000ms" data-wow-delay="300ms">
<div id="top5-caixa">
<div class="colocacao">
<?php echo $listar->colocacao; ?>
</div>
<div class="musica-cantor">
<p class="cantor"><?php echo $listar->cantor; ?></p>
<p class="musica"><?php echo $listar->titulo; ?></p>
</div>
<div class="like">
<a href='extra/likes.php?id=<?php echo "".$listar->id.""; ?>' alt="Gostei"><img src="images/like.png" height="40px" width="40px" id="like"></a>
</div>
</div>
</div><!-- ./ COL-MD-12 -->
<?php } ?>
</div><!-- ./ ROW -->
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Inserir dados PDO</title>
</head>
<body>
<?php
// Incluindo arquivo de conexão
include("conexao.php");
$pdo = conectar();
// Recuperando valores
$id = $_GET['id'];
// Realizando consulta
$atualizartop=$pdo->prepare("UPDATE top5 SET likes = likes +1 WHERE ID='$id'");
$atualizartop->bindValue(":id",$id);
$atualizartop->execute();
if($atualizartop->rowCount() > 0):
echo "Obrigado por votar!";
else:
echo "Desculpe, mas ocorreu algum erro.";
endif;
?>
</body>
</html>
мне интересно, если нажать на ссылку, чтобы голосовать бы, как вернуть "Спасибо за голосование!"без обновления страницы, которая имеет функции php.
Если кто-нибудь знает, как помочь вам.
3
Author: Gabriel Gouveia, 2016-08-02
1 answers
Вставьте id
и в его изображение со значением like
. В файл с расширением .js
", найдете этот код:
$("#like").click(function(){
//evento de click sobre a imagem
var id = $(this).attr('id'); //aqui você pegao valor do atributo id
$dados['id'] = id; //esse array será passado para o php só que por POST ao invés de GET
$.ajax({
url: "incrementaLike.php", //Aqui vai o nome do seu arquivo PHP
type: "post",
async: true,
data: $dados,
cache: false
})
.done(function(data){
//neste o ponto, o código php já foi executado e voltou para aqui se tudo ocorreu sem erro
console.log(data);
})
.fail(function(){
//vem para cá se algum erro ocorreu
console.log("Deu alguma errada no php");
});
});
Вы должны отделить свой код в отдельный файл, а путь к этому будет в атрибуте url
.
В случае, если я поместил файл с именем incrementaLike.php в той же папке html
, а также из файлов js
.
IncrementaLike.php
<?php
include("conexao.php");
$pdo = conectar();
// Recuperando valores
$id = $_POST['id'];
// Realizando consulta
$atualizartop=$pdo->prepare("UPDATE top5 SET likes = likes +1 WHERE ID='$id'");
$atualizartop->bindValue(":id",$id);
$atualizartop->execute();
if($atualizartop->rowCount() > 0):
echo "Obrigado por votar!";
else:
echo "Desculpe, mas ocorreu algum erro.";
endif;
?>
4
Author: leandroungari, 2016-08-02 19:37:58