опрос, голосование

blood1981

New member
Регистрация
19 Апр 2008
Сообщения
1,529
Реакции
0
Баллы
0
Адрес
Архангельск
Народ, подскажите готовый сервис для голосования на сайте
Так то нужен обработчик, но опыта по написанию нет
Саму анкету сделал... вернее слизал с другого сайта...
Куча готовых решений пересмотрел и ничего не нашёл....
Необходимо подсчёт голосов в процентах по каждому вопросу...
сам опрос взял отсюда http://www.fms.gov.ru/poll/
хотелось бы чтоб так же обрабатывалось...
НО у нас сайт статический... а там на движке (на битриксе....)
В общем хотелось бы сделать голосование на php без sql, чтоб бралось всё с текстового файлика или с файла *.dat
Помогите пожалуйста, кто обладает знаниями...
 

blood1981

New member
Регистрация
19 Апр 2008
Сообщения
1,529
Реакции
0
Баллы
0
Адрес
Архангельск
j2me, Это всё уже просмотрел... не то всё...
Там опросники на один вопрос..., а если где и на 2-4, то с отдельными кнопками...
Тема можно сказать не актуальна... т.к. за пару дней с начальником написали на базе mysql
Ну а если кто сделает такой же опросник как на ссылке, то респектую тому и могу выкупить баксов за 10... :)
 

j2me

Заблокирован
Регистрация
23 Апр 2009
Сообщения
24,449
Реакции
26
Баллы
0
Адрес
Архангельская область: доска, треска и тоска
blood1981, все 98 посмотрел? :) на вскидку взял EasyVote v0.1 - ну очень просто расширить на нужное кол-во вопрос-ответов.
Код:
// 3 варианта 1-го вопроса
  if($game==1) $content[0]=$content[0]+1;
  if($game==2) $content[1]=$content[1]+1;
  if($game==3) $content[2]=$content[2]+1;
// 3 варианта 2-го вопроса
  if($price==1) $content[3]=$content[3]+1;
  if($price==2) $content[4]=$content[4]+1;
  if($price==3) $content[5]=$content[5]+1;
 

blood1981

New member
Регистрация
19 Апр 2008
Сообщения
1,529
Реакции
0
Баллы
0
Адрес
Архангельск
Последнее редактирование:

j2me

Заблокирован
Регистрация
23 Апр 2009
Сообщения
24,449
Реакции
26
Баллы
0
Адрес
Архангельская область: доска, треска и тоска
способов, имхо, много. первое что сегодня пришло на ум это динамически создавать картинку Gauge на основе имеющихся данных, как это сделано у меня в подписи:

Код:
<?php

require('win2uni.php');

define('FONT_NAME', 'ariali.ttf');
define('FONT_SIZE', 8);

$text = win2uni('Последний раз редактировалось Chiffa, FosterS, madAlex, mike765, YT1BRUTAL1TY, SergBuh, TestPoints, Сегодня '.date('d.m.Y', time()).' в ').date('H:i', time()).'.';

$coord = imagettfbbox(
   FONT_SIZE,
   0,
   FONT_NAME,
   $text
   );

$width = $coord[4] - $coord[0];
$height = $coord[3] - $coord[7];

$image = imagecreate($width, ($height * 3) / 2);
$backgroundcolor = imagecolorallocatealpha($image, 255, 255, 255, 127);
$color = imagecolorallocate($image, 0, 0, 0);

imagettftext($image, FONT_SIZE, 0, 0, $height, $color, FONT_NAME, $text);

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
 

j2me

Заблокирован
Регистрация
23 Апр 2009
Сообщения
24,449
Реакции
26
Баллы
0
Адрес
Архангельская область: доска, треска и тоска
http://j2me.webservis.ru/vote/index.php

PHP:
<html>
  <head>  
    <title>Голосование</title>    
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  </head>    
  <body bgcolor="silver">  
    <?php
      if($action=="done")
      {
        $data="vote.dat";
        $file=fopen($data, "r+");
        $content=fread($file, filesize($data));                
        $content=explode("-", $content); 
        
        if($q1==1) $content[0]=$content[0]+1;
        if($q1==2) $content[1]=$content[1]+1;
        if($q1==3) $content[2]=$content[2]+1;
        if($q1==4) $content[3]=$content[3]+1;
        
        if($q2==1) $content[4]=$content[4]+1;
        if($q2==2) $content[5]=$content[5]+1;
        
        if($q3==1) $content[6]=$content[6]+1;
        if($q3==2) $content[7]=$content[7]+1;
        if($q3==3) $content[8]=$content[8]+1;

        echo("
          <center><b>Результаты</b></center>
          <center>
        
          <script type='text/javascript'>
            google.load('visualization', '1', {'packages':['corechart']});
            google.setOnLoadCallback(drawChart);                
            function drawChart() {
              var data = new google.visualization.DataTable();
              data.addColumn('string', 'Смартфон');
              data.addColumn('number', 'Крутость');
              data.addRows(4);
              data.setValue(0, 0, 'Nokia');
              data.setValue(0, 1, $content[0]);
              data.setValue(1, 0, 'Motorola');
              data.setValue(1, 1, $content[1]);
              data.setValue(2, 0, 'Samsung');
              data.setValue(2, 1, $content[2]);
              data.setValue(3, 0, 'LG');
              data.setValue(3, 1, $content[3]);
              var chart = new google.visualization.BarChart(document.getElementById('chart_div1'));
              chart.draw(data, {width: 400, height: 200, title: 'Какой смартфон круче?'
                               });
            }            
          </script>                
          <div id='chart_div1'></div>
        
          Nokia: $content[0]<br>
          Motorola: $content[1]<br>
          Samsung: $content[2]<br>
          LG: $content[3]<br>
          <br>
          
          <script type='text/javascript'>
            google.load('visualization', '1', {'packages':['corechart']});
            google.setOnLoadCallback(drawChart);                
            function drawChart() {
              var data = new google.visualization.DataTable();
              data.addColumn('string', 'ОСь');
              data.addColumn('number', 'Крутость');
              data.addRows(4);
              data.setValue(0, 0, 'Symbian');
              data.setValue(0, 1, $content[4]);
              data.setValue(1, 0, 'Android');
              data.setValue(1, 1, $content[5]);
              var chart = new google.visualization.BarChart(document.getElementById('chart_div2'));
              chart.draw(data, {width: 400, height: 200, title: 'Какая ОСь круче?'
                               });
            }            
          </script>                
          <div id='chart_div2'></div>
        
          Symbian: $content[4]<br>
          Android: $content[5]<br>
          <br>
          
          <script type='text/javascript'>
            google.load('visualization', '1', {'packages':['corechart']});
            google.setOnLoadCallback(drawChart);                
            function drawChart() {
              var data = new google.visualization.DataTable();
              data.addColumn('string', 'Кто');
              data.addColumn('number', 'Крутость');
              data.addRows(4);
              data.setValue(0, 0, 'Bill Gates');
              data.setValue(0, 1, $content[6]);
              data.setValue(1, 0, 'Steve Jobs');
              data.setValue(1, 1, $content[7]);
              data.setValue(2, 0, 'Arnold Schwarzenegger');
              data.setValue(2, 1, $content[8]);
              var chart = new google.visualization.BarChart(document.getElementById('chart_div3'));
              chart.draw(data, {width: 400, height: 200, title: 'Кто самый крутой?'
                               });
            }            
          </script>                
          <div id='chart_div3'></div>
        
          Bill Gates: $content[6]<br>
          Steve Jobs: $content[7]<br>
          Arnold Schwarzenegger: $content[8]<br>          
          <br>
          
          <a href='index.php'>Назад</a>
          </center>
        ");
        
        $content=implode("-", $content);                
        fseek($file, 0, 0);
        fwrite($file, $content);        
        fclose($file);        
      } else
      {
        echo('
          <center><b>Голосование</b></center>
          <form action=index.php?action=done method=post>
        
            <b>Какой смартфон круче?</b><br>
            <input type="radio" name="q1" value="1">Nokia<br>
            <input type="radio" name="q1" value="2">Motorola<br>
            <input type="radio" name="q1" value="3">Samsung<br>
            <input type="radio" name="q1" value="4">LG<br>
            <br>
        
            <b>Какая ОСь круче?</b><br>
            <input type="radio" name="q2" value="1">Symbian<br>
            <input type="radio" name="q2" value="2">Android<br>
            <br>
        
            <b>Кто самый крутой?</b><br>
            <input type="radio" name="q3" value="1">Bill Gates<br>
            <input type="radio" name="q3" value="2">Steve Jobs<br>
            <input type="radio" name="q3" value="3">Arnold Schwarzenegger<br>
            <br>
            
            <input type=submit value="Проголосовать">
          </form>
        ');
      }
    ?>  
  </body>  
</html>

при желании все это безобразие можно оптимизировать. но это уже тема не этого форума, имхо)))

Google Chart Tools
 
Последнее редактирование:

blood1981

New member
Регистрация
19 Апр 2008
Сообщения
1,529
Реакции
0
Баллы
0
Адрес
Архангельск
j2me, Пиво пьёшь?
Давай угощу тебя как-нибудь, заодно подскажешь чего...
Если в Арх поедешь... :)
 

blood1981

New member
Регистрация
19 Апр 2008
Сообщения
1,529
Реакции
0
Баллы
0
Адрес
Архангельск
На автобусе уже отвык ездить, а если на машине ехать, то уже и не попить пива... :)
 

runnov

New member
Регистрация
18 Ноя 2013
Сообщения
1
Реакции
0
Баллы
0
Народ, подскажите готовый сервис для голосования на сайте
Так то нужен обработчик, но опыта по написанию нет
Саму анкету сделал... вернее слизал с другого сайта...
Куча готовых решений пересмотрел и ничего не нашёл....
Необходимо подсчёт голосов в процентах по каждому вопросу...
сам опрос взял отсюда http://www.fms.gov.ru/poll/
хотелось бы чтоб так же обрабатывалось...
НО у нас сайт статический... а там на движке (на битриксе....)
В общем хотелось бы сделать голосование на php без sql, чтоб бралось всё с текстового файлика или с файла *.dat
Помогите пожалуйста, кто обладает знаниями...
Вконтакте к примеру, можно на страницу вставлять.
 
Сверху