вот что у меня получилось
<script src="./templates/js/jquery-2.1.1.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($){
$('input[name="yes"]').click(function(e){
e.preventDefault();
var $form = $(this).parents('form');
$.post(
$form.attr('action'),
$form.serialize(),
function(response){
$(this).closest('.viewVideo').find('.rate').text("").text(response);
});
});
});
</script>
<?php for ($i = 0; $i < count($content); $i++){ ?>
<div class="viewVideo">
<div class="namevideo"><a href="view&id=<?=$row['id']?>"><?=@$content[$i]['name']?></a></div>
<div class="link"><?=@$content[$i]['link']?></div>
<div class="rates">
<form action="<?=$_SERVER['REQUEST_URI']?>" method="post">
<input type="hidden" name="id" value="<?=@$content[$i]['id']?>">
<input type="image" src="templates/img/like.png" style="width:25px;height:24px;float:left;" value="yes" name="yes">
</form><div class="rate"><?=@$content[$i]['rate']?></div>
</div>
</div>
<?php } ?>
вот сам обработчик
<?PHP
defined("ACCESS") or die('access denied');
if ( !isset($_GET['id']) ){
$sql = query("SELECT * FROM `videos` ORDER BY `rate` DESC ");
}else{
$sql = query("SELECT * FROM `videos` WHERE `userID` = '".intval($_GET['id'])."' ");
}
if (isset($_POST['id']) and isset($_SESSION['user'])) {
query("UPDATE `videos` SET `rate` = `rate`+1 WHERE `id` = '".intval($_POST['id'])."'");
}elseif(isset($_POST['id']) and !isset($_SESSION['user'])){
}
$content = array();
while($row = mysqli_fetch_assoc($sql)){
$content[] = $row;
echo $row['rate'];
}
все обновляет в базе, но результат видно только после обновления страницы, почему так происходит?