Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Общие вопросы  ->  счётчик. нужна помощь программиста

Вопросы не вошедшие в другие разделы

Добавлено: 26.02.16 10:22:15 #1

Партнер



Регистрация: 22.11.06
Сообщений: 273


Обратиться по имени

добрый день, уважаемые. перейду сразу к делу. была поставлена задача установить на мебельный сайт счётчик проданных диванов. причём самый обычный, бутафорский без привязок и интеграций с 1С и проч. т.е. ставится начальное значение и каждые 2 часа к нему прибавляется +1.
было создано 3 файла:
data.php
1020|22
где левая часть - начальное число, правая - час, в который последний раз перезаписывалось.

main.php
<?
$shag=2;
$scan = $_POST['scan'];
$t = $_POST['t'];
$f = file("data.php");
$data = explode("|",$f[0]);
$itog = $data[0];

if($scan==1){
    
  if($t > $data[1]+$shag){
  $itog = $itog+1;
  $data[1]=$t;
  file_put_contents("data.php",$itog."|".$data[1]);
  }   
}
//демо режим, быстрый счетчик
if($scan==2){
$itog = $itog+1;
$data[1]=$t;
file_put_contents("data.php",$itog."|".$data[1]);
}
 $ar=str_split($itog);
 $string="";
 foreach($ar as $v){
 $string=$string."<div class='t10'>$v</div>";
  }
  echo $string;
?>


и, собственно, index.php
<head>
<style>
  .clear{clear:both}
  .t10{float:left;  padding:8px;  font-size:20px;  background-color:#000064;  color:white;  margin-right:5px;}  
  </style>
     <script type="text/javascript">
function take(a){
$.ajax({
type:'POST',
cache:false,
dataType:'html',
url:'work/main.php',
data:{
'scan':a,
't':'<?=date("H");?>'
},
success:function (data) {
$("#zkz").html(data);}
});      
}
$(function(){          
take(1);//ordinary launch
setInterval(function(){
take(1)},10000);
});
</script> 
</head>
<body>
<div id='zkz'></div>
<div class='clear'></div>
</body>


далее.
папка work кладется в корень.
из файла Index.php
.clear{clear:both}
.t10{float:left;  padding:8px;  font-size:20px;  background-color:#000064;  color:white;  margin-right:5px;}

вставляем в стили макета,
вызов js
<script type="text/javascript">
function take(a){
$.ajax({
type:'POST',
cache:false,
dataType:'html',
url:'work/main.php',
data:{
'scan':a,
't':'<?=date("H");?>'
},
success:function (data) {
$("#zkz").html(data);}
});      
}
$(function(){          
take(1);//ordinary launch
setInterval(function(){
take(1)},10000);
});
</script>

вставляется в Head,
<div id='zkz'></div><div class='clear'></div> прописываю в подвале. в результате получился симпатичный счётчик http://www.divanport.ru/ внизу справа.

но тут возникает проблема. он не обновляется. вообще. ни через 2 часа, ни через 4... в принципе он работает, если take(1)},10000 заменить на take(2)},10000, то он начинает менять значения прямо на глазах, но в нормальном состоянии, когда "take(1)},10000" ничего не происходит.

кто поможет разобраться, +1 в карму, слава и почёт. спасибо за внимание.



Добавлено: 26.02.16 10:32:16 #2

Партнер



Регистрация: 06.05.10
Сообщений: 26


Обратиться по имени

какой адище

задача решается одной строчкой на js, без php, ajax и вот этого всего что вы наворотили



Системный администратор по Amiro.CMS. Быстрое решение любых проблем, настройка хостинга, перенос сайта, обновление системы, восстановление после сбоя.
Добавлено: 26.02.16 11:17:19 #3

Партнер



Регистрация: 22.11.06
Сообщений: 273


Обратиться по имени

да, я понимаю, что данный метод не идеален, но к сожалению ничего другого у меня нет потому и спрашиваю.



Добавлено: 16.05.16 19:11:19 #4



Регистрация: 26.05.11
Сообщений: 38


Обратиться по имени

Проблему решили? Если нет пишите.



Алекс


Создать новую тему

Всего тем: 6659
Всего сообщений: 27845
Всего зарегистрированных пользователей: 52968
Последний зарегистрированный пользователь: user57727043