Hola foreros! tengo un sistema de puntuacion para los comentarios de mi web que actualmente funciona perfecto con php el problema esta en que al puntuar al ser php puro se recarga la pagina y haya que bajar hasta el comentario puntuado para ver el resultado, cosa que es muy tediosa a mi parecer, tengo entendido que con ajax esto se puede solventar, he aplicado un codigo sencillo pero no se en que pueda estar fallando que aun se sigue recargando la pagina, y no me envia el formulario... espero me puedan ayudar, me tiene estancado
Script:
<script type="text/javascript">
$("#puntuar-positivo").click( function() { // Con esto establecemos la acción por defecto de nuestro botón de enviar.
$.post("soporte/valorar.php",$("#formulario-valoracion").serialize(),function(res){
$("#formulario").fadeOut("slow"); // Hacemos desaparecer el div "formulario" con un efecto fadeOut lento.
if(res == 1){
$("#exito").delay(500).fadeIn("slow"); // Si hemos tenido éxito, hacemos aparecer el div "exito" con un efecto fadeIn
} else {
$("#fracaso").delay(500).fadeIn("slow"); // Si no, lo mismo, pero haremos aparecer el div "fracaso"
}
});
});
});
</script>
formulario:
<div id="formulario">
<form id="formulario-valoracion" action="soporte/valorar.php" method="POST">
<label id="valorar"> Valorar </label>
<!-- datos del comentario a valorar-->
<input hidden="hidden" type="text" name="num-comentario" id="num-comentario" value="<?php echo $row['id']; ?>" >
<input hidden="hidden" type="text" name="punto" id="punto" value="<?php echo $row['positivo']; ?>" >
<!-- puntuar-->
<button name="puntuar-positivo" id="puntuar-positivo" class="icon-thumbs-up"></button>
</form>
<div>
valorar.php:
Código PHP:
<?php
include ("conexiondb.php");
include('config.php');
//establecemos la variable que contendra el id del comentario a puntuar
$id= quitar($_POST['num-comentario']);
//consultamos la cantidad actual de puntos
$consultar_positivo= mysql_query("SELECT positivo FROM comentarios WHERE id='$id' ");
//hacemos el arreglo con los resultados
$row= mysql_fetch_array($consultar_positivo);
//si el usuario presiona el boton para puntuar
if (isset($_POST['puntuar-positivo'])){
//declaramos variable que contenga el punto positivo a sumar para el comentario
$sumar_positivo = quitar($_POST['punto']+1);
//establecemos una variable para los puntos positivos actuales
$cantidad_positivo=$row['positivo'];
//vamos actualizando los puntos positivos conforme se use el boton de puntuar positivo
if ($cantidad_positivo>=0){
$puntuar_positivo= mysql_query("UPDATE `comentarios` SET `positivo` = '$sumar_positivo' WHERE `comentarios`.`id` = '$id' ");
//si se actualizan los puntos positivos, se notifica
if ($puntuar_positivo) {
//esperar 2 segundos y refrescar la pagina
sleep(2);
header('Location:'. getenv('HTTP_REFERER'));
echo "Gracias!";
//si no; se indica el error
}else{
echo "Error, intente mas tarde";
}
}
}
?>