Форум поддержки Social Engine
Вернуться   Форум поддержки Social Engine > Social Engine v2.0 + > Social Engine - Общие вопросы
Перезагрузить страницу Рейтинг в профиле (ajax)
Social Engine - Общие вопросы Здесь задаются и решаются все общие вопросы касающиеся движка

Ответ
 
Опции темы Опции просмотра
  (#1) Старый
vk2se vk2se вне форума
Новичок
vk2se имеет немного плохого в прошлом
 
Аватар для vk2se
 
Сообщений: 3
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вы выразили Негатив: 0
Выразили негатив 0 раз(а) в 0 сообщениях
Регистрация: 25.06.2012
Вес репутации: 0
Версия SE: v 2.7
Вопрос Рейтинг в профиле (ajax) - 26.06.2012, 01:15

Всем доброго времени суток. Возникла такая проблема.

Делаю рейтинг в профиле, + и -. У меня ошибка. Если сидишь у себя на странице, рейтинг поднимает и повышает всё нормально. Если заходишь к другому, пишет его рейтинг, но если начинаешь поднимать или понижать у него рейтинг, то показывается твой рейтинг. Перепробовал в файлах и $user и $owner, не помогло вроде. Выручайте. Код чуть-чуть допилить. Отдаю бесплатно.

1) страница profile.tpl

Код HTML:
   <style>{literal}
#rating { width: 370px; position: absolute ; padding:10px, 5px; text-align: right; }
#up_rate,#down_rate { cursor:pointer }
#lrate { font-size:18px; font-weight:bold; color: #A9A9A9; }{/literal}
</style>

<script type="text/javascript">{literal}
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}


function profileVotes(dec,id){
var req = getXmlHttp()  

req.onreadystatechange = function() {
    if (req.readyState == 4) {
    if(req.status == 200) {
document.getElementById('lrate'  + id).innerHTML = req.responseText;
    }
    }

    }

req.open('GET', 'vote_user.php?dec='+dec+'&id=' + id, true);
req.send(null);
document.getElementById('lrate'  + id).innerHTML = '<img src="/images/upload.gif"></img>';
}{/literal}
</script>


<div id="rating">
<a href="javascript: profileVotes(0,{$owner->user_info.votes})"><img src="/images/icons/thumbs_down.gif" title="Плохо" alt="Плохо" id="down_rate"></a>
 <span id="lrate{$owner->user_info.votes}">{$owner->user_info.votes}</span> 
<a href="javascript: profileVotes(1,{$owner->user_info.votes})"><img src="/images/icons/thumbs_up.gif" title="Хорошо" alt="Хорошо" id="up_rate"></a>
</div>
2) страница vote_user.php

PHP код:
<?

include "header.php";

$dec=$_GET['dec'];
$id=$_GET['user_id'];


//Обновляем рейтинг в базе
if($dec=="1"$database->database_query("UPDATE se_users SET votes=votes+1 WHERE user_id='".$user->user_info[user_id]."'");
if(
$dec=="0"$database->database_query("UPDATE se_users SET votes=votes-1 WHERE user_id='".$user->user_info[user_id]."'");

//Получаем новый рейтинг и выводим его
$row=mysql_fetch_array(mysql_query("SELECT votes FROM se_users WHERE user_id='".$user->user_info[user_id]."'"));
echo 
$row['votes'];

?>
3) создадим в базе данных таблицу! в se_users делаем votes (INT)

p.s кто знает, в чём может быть проблема?
Ответить с цитированием
  (#2) Старый
koster koster вне форума
Пользователь
koster имеет немного плохого в прошлом
 
Сообщений: 33
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Вы выразили Негатив: 1
Выразили негатив 2 раз(а) в 2 сообщениях
Регистрация: 21.05.2011
Вес репутации: 0
Версия SE: v 2.7
Отправить сообщение для koster с помощью Skype™
По умолчанию 27.06.2012, 23:29

<?

include "header.php";

$dec=$_GET['dec'];
$id=$_GET['user_id'];


//Обновляем рейтинг в базе
if($dec=="1") $database->database_query("UPDATE se_users SET votes=votes+1 WHERE user_id='".$owner->user_info[user_id]."'");
if($dec=="0") $database->database_query("UPDATE se_users SET votes=votes-1 WHERE user_id='".$user->user_info[user_id]."'");

//Получаем новый рейтинг и выводим его
$row=mysql_fetch_array(mysql_query("SELECT votes FROM se_users WHERE user_id='".$user->user_info[user_id]."'"));
echo $row['votes'];

?>
Ответить с цитированием
  (#3) Старый
vk2se vk2se вне форума
Новичок
vk2se имеет немного плохого в прошлом
 
Аватар для vk2se
 
Сообщений: 3
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вы выразили Негатив: 0
Выразили негатив 0 раз(а) в 0 сообщениях
Регистрация: 25.06.2012
Вес репутации: 0
Версия SE: v 2.7
По умолчанию 30.06.2012, 02:29

Цитата:
Сообщение от koster Посмотреть сообщение
<?

include "header.php";

$dec=$_GET['dec'];
$id=$_GET['user_id'];


//Обновляем рейтинг в базе
if($dec=="1") $database->database_query("UPDATE se_users SET votes=votes+1 WHERE user_id='".$owner->user_info[user_id]."'");
if($dec=="0") $database->database_query("UPDATE se_users SET votes=votes-1 WHERE user_id='".$user->user_info[user_id]."'");

//Получаем новый рейтинг и выводим его
$row=mysql_fetch_array(mysql_query("SELECT votes FROM se_users WHERE user_id='".$user->user_info[user_id]."'"));
echo $row['votes'];

?>
Неа, увы.. всё равно, у всех остальных юзеров, мой рейтинг при голосовании! А голосование + не работает, а - норм голосует!
Не знаю , понял ты или нет. Лучше поставь себе и проверь, так понятнее тебе будет
Ответить с цитированием
  (#4) Старый
koster koster вне форума
Пользователь
koster имеет немного плохого в прошлом
 
Сообщений: 33
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Вы выразили Негатив: 1
Выразили негатив 2 раз(а) в 2 сообщениях
Регистрация: 21.05.2011
Вес репутации: 0
Версия SE: v 2.7
Отправить сообщение для koster с помощью Skype™
По умолчанию 09.07.2012, 20:27

вот попробуй, мб будет работать

//Получаем новый рейтинг и выводим его
$row=mysql_fetch_array(mysql_query("SELECT votes FROM se_users WHERE user_id='".$owner->user_info[user_id]."'"));
echo $row['votes'];


а вообще в яваскрипте передаётся переменная ID, айди чей и откуда переменная берется?

в php эту переменную $id подставить нужно если скрипт даёт айди owner

Последний раз редактировалось koster, 09.07.2012 в 20:35.
Ответить с цитированием
  (#5) Старый
truedogss truedogss вне форума
Новичок
truedogss имеет немного плохого в прошлом
 
Сообщений: 5
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вы выразили Негатив: 0
Выразили негатив 0 раз(а) в 0 сообщениях
Регистрация: 21.02.2012
Вес репутации: 0
Версия SE: v 2.7
По умолчанию 10.07.2012, 14:51

PHP код:
<?
include "header.php";
$dec rq('dec');
$id rq('id');

//Обновляем рейтинг в базе
if($dec=="1"$database->database_query("UPDATE se_users SET votes=votes+1 WHERE user_id='".$id."'");
if(
$dec=="0"$database->database_query("UPDATE se_users SET votes=votes-1 WHERE user_id='".$id."'");

//Получаем новый рейтинг и выводим его
$row=mysql_fetch_array(mysql_query("SELECT votes FROM se_users WHERE user_id='".$id."'"));
echo 
$row['votes'];
exit;

?>

Последний раз редактировалось truedogss, 10.07.2012 в 15:02. Причина: ошибся
Ответить с цитированием
  (#6) Старый
koster koster вне форума
Пользователь
koster имеет немного плохого в прошлом
 
Сообщений: 33
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Вы выразили Негатив: 1
Выразили негатив 2 раз(а) в 2 сообщениях
Регистрация: 21.05.2011
Вес репутации: 0
Версия SE: v 2.7
Отправить сообщение для koster с помощью Skype™
По умолчанию 10.07.2012, 23:47

И я о том же, если $id то что нужно
Ответить с цитированием
  (#7) Старый
truedogss truedogss вне форума
Новичок
truedogss имеет немного плохого в прошлом
 
Сообщений: 5
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вы выразили Негатив: 0
Выразили негатив 0 раз(а) в 0 сообщениях
Регистрация: 21.02.2012
Вес репутации: 0
Версия SE: v 2.7
По умолчанию 10.07.2012, 23:55

И ещё один минус в работо0способности
то что в тпл не нравильно написано
какому айди повышается ретинг
PHP код:

  
<style>{literal}
#rating { width: 370px; position: absolute ; padding:10px, 5px; text-align: right; }
#up_rate,#down_rate { cursor:pointer }
#lrate { font-size:18px; font-weight:bold; color: #A9A9A9; }{/literal}
</style>

<
script type="text/javascript">{literal}
function 
getXmlHttp(){
  var 
xmlhttp;
  try {
    
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (
e) {
    try {
      
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (
E) {
      
xmlhttp false;
    }
  }
  if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
    
xmlhttp = new XMLHttpRequest();
  }
  return 
xmlhttp;
}


function 
profileVotes(dec,id){
var 
req getXmlHttp()  

req.onreadystatechange = function() {
    if (
req.readyState == 4) {
    if(
req.status == 200) {
document.getElementById('lrate'  id).innerHTML req.responseText;
    }
    }

    }

req.open('GET''vote_user.php?dec='+dec+'&id=' idtrue);
req.send(null);
document.getElementById('lrate'  id).innerHTML '<img src="/images/upload.gif"></img>';
}{/
literal}
</script>


<div id="rating">
<a href="javascript: profileVotes(0,{$owner->user_info.votes})"><img src="/images/icons/thumbs_down.gif" title="Плохо" alt="Плохо" id="down_rate"></a>
 <span id="lrate{$owner->user_info.votes}">{$owner->user_info.votes}</span> 
<a href="javascript: profileVotes(1,{$owner->user_info.user_id})"><img src="/images/icons/thumbs_up.gif" title="Хорошо" alt="Хорошо" id="up_rate"></a>
</div> 
и ещё один минус
не стоит лимит по нажатию то есть я могу повышать рейтинг профиля до скольких хочу
Ответить с цитированием
  (#8) Старый
PaZiTiF PaZiTiF вне форума
Пользователь
PaZiTiF имеет немного плохого в прошлом
 
Сообщений: 39
Вы сказали Спасибо: 14
Поблагодарили 3 раз(а) в 3 сообщениях
Вы выразили Негатив: 0
Выразили негатив 1 раз в 1 сообщении
Регистрация: 13.11.2011
Вес репутации: 0
Версия SE: v 3.20
Отправить сообщение для PaZiTiF с помощью ICQ Отправить сообщение для PaZiTiF с помощью Skype™
По умолчанию 11.07.2012, 12:12

а как поставить??? он всёравно не работает
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход




Rambler Top100