Доброе время суток,
Спасибо за ответ.
Я так и думал, что будет непросто это реализовать, чтобы все данные формы отправлять без перезагрузки странички, но если у вы придумаете какое-нибудь решение, то будет просто здорово.
У меня вопрос к вам насчет оценки комментариев, в данный момент у меня оценка работает таким образом, если кликнуть 2 раза (почему-то), то после перезагрузки появится оценка (1 или -1).
Имеется скрипт оценивания тем, но хотел бы реализовать с помощью скрипта, который имеется у вас в теме "Добавление комментариев на сайт". Ниже перечисленные коды из этой темы и хотел бы адаптировать под скрипт, который имеется сейчас.
1. Имеется в таблице comment поля minus и plus:
2. Создал файл rating_comm.php
Код:
Код:
<?php
if (isset($_POST["comm_id"]) and is_numeric($_POST["comm_id"]))
$obj=$_POST["comm_id"];
else $obj='';
if (isset($_POST["ocenka"]) and ($_POST["ocenka"]==0 or $_POST["ocenka"]==1))
$ocenka=$_POST["ocenka"];
else $ocenka='';
if ($ocenka!='' and $obj>0) {
$ip=$_SERVER['REMOTE_ADDR'];
$db=mysqli_connect("localhost","admin","pswd","acad") or die();
$res=mysqli_query($db,"SELECT count(id),ocenka FROM ocenka_comment
WHERE comment_id='".$obj."' and ip=INET_ATON('".$ip."')");
$number=mysqli_fetch_array($res);
if ($number[0]==0) {
$res=mysqli_query($db,"INSERT INTO ocenka_comment (date,comment_id,ip,ocenka)
values ('".time()."','".$obj."',INET_ATON('".$ip."'),'".$ocenka."')");
if ($ocenka==0) $res=mysqli_query($db,"UPDATE comment SET minus=(minus+1)
WHERE id='".$obj."' LIMIT 1");
else $res=mysqli_query($db,"UPDATE comment SET plus=(plus+1)
WHERE id='".$obj."' LIMIT 1");
}
elseif ($number["ocenka"]!=$ocenka) {
$res=mysqli_query($db,"UPDATE ocenka_comment SET date='".time()."',
ocenka='".$ocenka."' WHERE comment_id='".$obj."' and ip=INET_ATON('".$ip."')");
if ($ocenka==0) $res=mysqli_query($db,"UPDATE comment SET minus=(minus+1),
plus=(plus-1) WHERE id='".$obj."' LIMIT 1");
else $res=mysqli_query($db,"UPDATE comment SET plus=(plus+1), minus=(minus-1)
WHERE id='".$obj."' LIMIT 1");
}
$res=mysqli_query($db,"SELECT plus,minus FROM comment WHERE id='".$obj."' LIMIT 1");
$rating=mysqli_fetch_array($res);
echo '<b>'.( $rating["plus"]-$rating["minus"]).'</b>';
mysqli_close($db);
}
?>
<?php
$del_date=$time-2592000; //время в секундах (2592000 сек. = 30 дней)
$res=mysqli_query($db,"DELETE FROM ocenka_comment WHERE date<".$del_date."");
?>
3. Подключаю js код:
Код:
<script>
//Получение id оцененного комментария
$(".comm_plus,.comm_minus").click(function(){
id_comm=$(this).parents(".comm_head").attr("id").substr(1);
});
//Отправление оценки комментария в файл rating_comm.php
$(".comm_plus").click(function(){
jQuery.post("rating_comm.php",{comm_id:id_comm,ocenka:1},rating_comm);
});
$(".comm_minus").click(function(){
jQuery.post("rating_comm.php",{comm_id:id_comm,ocenka:0},rating_comm);
});
//Возврат рейтинга комментария и его обновление
function rating_comm(data){
$("#rating_comm"+id_comm).fadeOut(800,function(){
$(this).html(data).fadeIn(800);
});
}
</script>
При таком подключении нет изменений, так как у меня в коде где должны выводиться оставленные посетителями комментарии, сейчас так:
Код:
echo '<input type="image" src="../img/images/up.png" height="18px" width="19px" title="Хороший комментарий">';
echo '</form></td>'; //Комментарии
echo '<td width="10"><b>'.($ocenka_com[0]-$ocenka_com[1]).'</b></td>'; //images
echo '<td width="20">'; //Плохой комментарий
echo '<form method="POST" action="'.$_SESSION[full_url].'#m'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="comment_id" value="'.$tags[$parent][$i][0].'">';
echo '<input type="hidden" name="ocenka" value="0">';
echo '<input type="image" src="../img/images/down.png" height="18px" width="19px" title="Плохой комментарий">';
Не подскажите как реализовать данный момент, так как хотел бы использовать скрипт, который я не без вашей помощи уже сделал под себя и осталось несколько небольших нюансов и один из них является оценка комментариев без перезагрузки.
Все коды вроде есть, в базе данных поля добавлены и осталось подогнать под имеющийся у меня скрипт, чтобы работала оценка без перезагрузки.
Вы не можете сказать, почему именно 2 раза, а не один приходится кликать на изображение, чтобы поменялась оценка?
Извиняюсь, что продолжаю задавать вам вопросы, отнимая у вас время, но без вашей помощи было бы тяжело реализовать все моменты.
Спасибо и благодарен за помощь.