Форум

Открыть Ответить

Как учесть количество кликов (без перезагрузки страниц)

5

5

1
25.12.2013 15:45:48 25.12.2013 15:47:19

Есть доска объявлений.
В ней, подробный просмотр какого-либо объявления происходит без перезагрузки страницы по клику на номер объявления. Обработка клика осуществляется с помощью скрипта:


$open_close="<script type=\"text/javascript\">
function openbox(id){
display = document.getElementById(id).style.display; 
    if(display=='none'){
        document.getElementById(id).style.display='inline'; 
        prosm=prosm+1;
    }else{ 
        document.getElementById(id).style.display='none';  
     }
}
</script>";

и тут привязывается к номеру объявления
$pid2="<a href=\"#\" onclick=\"openbox('".$pid."'); return false\">".$pid."</a>";


А как дописать это код, что бы учесть дополнительную переменную, отвечающую за общее количество кликов по объявлению?
Т.е. первоначально из базы приходит переменная $hits и после клика по объявлению в базу уходит обновление переменной на +1.


вот для этой страницы: http://murom-grad.ru/wboard.html

SLAED CMS 5.* Pro
PHP 5
Сервер в интернете
olevpa
  • Группа: Клиент
  • Пункты: 32309
  • Регистрация: 06.05.2011
  • Пол: Мужчина
olevpa
4.01

4.01

26.12.2013 16:20:55 26.12.2013 16:23:17

Не проверял но должно работать


Запись через ажакс

<script type="text/javascript">
function openbox(id){
display = document.getElementById(id).style.display; 
    if(display=='none'){
        document.getElementById(id).style.display='inline'; 
$.get("/index.php?go=countViewsBoard&id="+id, function(data){return false;}, "json"); 	
}else{ 
document.getElementById(id).style.display='none';  
     }
}
</script>




В корне сайта в index.php после строки


else if ($go == "search") {
	echo open_search();
}


Вставить

else if ($go == "countViewsBoard") {

//Создаем записываем все просмотры в массив сессии для того что бы проверять смотрел ли уже пользователь данное объявление
session_start();
if (!isset($_SESSION['countViewsBoard'])) $_SESSION['countViewsBoard'] = array(); 

$id = intval($_GET['id']) ? $_GET['id'] : '';
if($id!='' && !isset($_SESSION['countViewsBoard'][$id])){

//тут исправить на свое - это просто для примера
$db->sql_query("UPDATE ".$prefix."_news SET counter=counter+1 WHERE sid='".$id."'");//Обновляем количество просмотров 

$_SESSION['countViewsBoard'][$id] = $id;//записываем номер ид

die(json_encode(array('success'=>'')));

}

else{

die(json_encode(array('error'=>'')));

}
}

ra55551
  • Группа: Клиент
  • Пункты: 2121
  • Регистрация: 02.11.2008
  • Пол: Мужчина
  • Из: Пермь
ra55551
3.74

3.74

27.12.2013 19:40:27

Спасибо. Заработало!

olevpa
  • Группа: Клиент
  • Пункты: 32309
  • Регистрация: 06.05.2011
  • Пол: Мужчина
olevpa
4.01

4.01

Открыть Ответить

Хотите опробовать SLAED CMS в действии?

Идеи и предложения
Обратная связь