Boas comunidade!
Tenho este botão que atualiza um campo na bd e me mostra numa span o valor que esse campo tem na base de dados.
Código (PHP):
O ficheiro de acção em php e o fav.php
Código (PHP):
Agora, como posso fazer com que, ao clicar no botão ele atualize a base de dados e não faça refresh na página?
Não tneho muita prática em Ajax... mas tentei algo assim
Código (Java):
Só que desta maneira, ele atualiza a página na mesma. Acho que é devido ao meu ficheiro fav.php que retorna alguns dados. Tentei eliminar os echos do meu ficheiro fav.php, mas algo não funcionou. Alguém me poderá ajudar, perceber como funciona o ajax?
Abraço!
Tenho este botão que atualiza um campo na bd e me mostra numa span o valor que esse campo tem na base de dados.
Código (PHP):
<a class='btn' id='fav-add' href=portal/fav.php?id=".$produto['id']."> <span class='badge bg-red'>".$produto['fav'] . "</span> <i class='fa fa-heart-o'></i> Likes </a>
O ficheiro de acção em php e o fav.php
Código (PHP):
<?php
...
$dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$id = $_REQUEST['id'];
$mais_um=1;
//verifica se já gostou
$query = mysql_query("select * from favoritos where id_user='$login_session' AND id_oferta='$id'", $connection);
$rows = mysql_num_rows($query);
if ($rows != false) {
echo "ja existe";
} else {
//Guarda no historico dos favoritos/os meus favoritos
$sql = "INSERT INTO favoritos (id_user, id_oferta)
VALUES ('$login_session', '$id')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
//Contador ofertas
$up = mysql_query("UPDATE ofertas SET fav=fav+1 WHERE id=$id");
if(mysql_affected_rows() > 0){
echo "Sucesso: Atualizado corretamente!";
}else{
echo "Aviso: Não foi atualizado!";
}
//Contador ofertas_pro
$up = mysql_query("UPDATE ofertas_pro SET fav=fav+1 WHERE id=$id");
if(mysql_affected_rows() > 0){
echo "Sucesso: Atualizado corretamente!";
}else{
echo "Aviso: Não foi atualizado!";
}
}
$conn->close();
//header('location: profile.php');
?>
...
$dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$id = $_REQUEST['id'];
$mais_um=1;
//verifica se já gostou
$query = mysql_query("select * from favoritos where id_user='$login_session' AND id_oferta='$id'", $connection);
$rows = mysql_num_rows($query);
if ($rows != false) {
echo "ja existe";
} else {
//Guarda no historico dos favoritos/os meus favoritos
$sql = "INSERT INTO favoritos (id_user, id_oferta)
VALUES ('$login_session', '$id')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
//Contador ofertas
$up = mysql_query("UPDATE ofertas SET fav=fav+1 WHERE id=$id");
if(mysql_affected_rows() > 0){
echo "Sucesso: Atualizado corretamente!";
}else{
echo "Aviso: Não foi atualizado!";
}
//Contador ofertas_pro
$up = mysql_query("UPDATE ofertas_pro SET fav=fav+1 WHERE id=$id");
if(mysql_affected_rows() > 0){
echo "Sucesso: Atualizado corretamente!";
}else{
echo "Aviso: Não foi atualizado!";
}
}
$conn->close();
//header('location: profile.php');
?>
Agora, como posso fazer com que, ao clicar no botão ele atualize a base de dados e não faça refresh na página?
Não tneho muita prática em Ajax... mas tentei algo assim
Código (Java):
jQuery(document).ready(function($) {
$('#fav-add').on('click', function(event) {
event.preventDefault();
produtoId = $(this).data('id');
$.ajax({
url: 'portal/fav.php',
type: 'post',
data: {id : produtoId},
success: function(data) {
alert('Sucesso!')
},
error: function() {
alert('Erro!');
}
});
});
});
$('#fav-add').on('click', function(event) {
event.preventDefault();
produtoId = $(this).data('id');
$.ajax({
url: 'portal/fav.php',
type: 'post',
data: {id : produtoId},
success: function(data) {
alert('Sucesso!')
},
error: function() {
alert('Erro!');
}
});
});
});
Só que desta maneira, ele atualiza a página na mesma. Acho que é devido ao meu ficheiro fav.php que retorna alguns dados. Tentei eliminar os echos do meu ficheiro fav.php, mas algo não funcionou. Alguém me poderá ajudar, perceber como funciona o ajax?
Abraço!