download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Как се прави анкета в интернет

Автор
Съобщение
anonymous
Сря, 21.10.09, 21:35
Да, ама не всеки хост го поддържа!
Смарти ли?
Чакай, трябва да научим какво е include и после....

Ами чакай сега - искаш на сайта да излизат 10 анкети ли?
Ето една много, ама много подходяща за целта анкета!
poll.rar

Значи като си настроиш хост и база можеш много лесно да извикаш тази анкета, която искаш!
Ето така -
<?php echo poll(НОМЕР_НА_АНКЕТАТА) ?>

И така можеш и 100 анкети да сложиш!
едит - В архива има и файл (index.php), отвори го и ще видиш пример.

редактиран от anonymous на 21.10.09 21:36
phrozencrew
Сря, 21.10.09, 21:46

RE: Как се прави анкета в интернет

” Да, ама не всеки хост го поддържа! „
Кое? Perl ли?
anonymous
Чет, 22.10.09, 11:32
Да, същия!
Аааааа - сега да поясня - НЕ всеки безплатен говоря!
phrozencrew
Чет, 22.10.09, 12:06
Може. Не съм особено запознат с всички безплатни хостинги. Иначе то PHP е базирано на Perl.
кака.лара
Чет, 22.10.09, 12:59
Абе viabg нали си го казва. Хостингът поддържа PHP и Python.

Проблеми може да цъфнат от 2 места. Едното е при попълването на анкетата. Трябва да се проверява за всяка форма да е попълнена правилно. Нормално е да се направи на клиентската страна с JavaScript. Толкова стандартна задачка, че я има като пример във всяка читанка по JS. Евентуално може да се закучи, ако има отворени въпроси в анкетата, но това е тънка тематика

Другият проблем е да се събират резултатите направо във формат за SPSS. Който не е набирал файлове за него, той не знае Това вече трябва да се измисли точно. Как ще се обработват анкетите? Въпрос по въпрос, анкета по анкета, на поток? От това зависи организацията на SPSS-файла, а от нея зависи какво точно ще прави скриптът на сървърската страна.

Най просто е да се обработва на поток. Тогава сървърският скрипт трябва само да приеме 1 низ и да го добави към края на файла с отговори. Или в началото Долу-горе същото е за обработка на анкета по анкета. Само след всеки низ трябва да се добави по един знак за нов ред.

Ама като не се знае как ще върви обработката само си гадаем. Иначе скриптът е 3-4 реда на PHP. Фрози ще го напише без да гледа

milen
Чет, 22.10.09, 13:07
Наскоро научих, че има доста лесен начин за това.
  
Нали знаете, че Google си имат on-line офис пакет ( Google Documents). В него има нещо подобно на екселски таблици. И Google са добавили възможност да си дизайнвате анкети в интернет, данните от които постъпват директно в такава таблица. След това може да експортирате в Ексел, OpenOffice или да си ги обработвате както са си там.
  
Не съм пробвал да си правя анкети, но вижте какъв линк ми изпратиха: https://spreadsheets.google.com:443/viewform?formkey=dHB2QmJYZTNMZlFidTMteHhkbUY0OEE6MA
 
Изглежда кадърно направено, нали?
кака.лара
Чет, 22.10.09, 13:27
Добре изглежда, ама много писаница за малко работа. Въпрос на технология. Обаче въпросникът е съставен некадърно. Половината им въпроси са затворени. Примерно въпросът "Отбележете пола си?" трябва да има поне още една позиция: "-мъж; - жена; -не мога да преценя; -друго"

Не е майтап. Социалните разпределения започват да лъжат на поразия при затворен въпросник.

Че се получава директно екселска таблица е улеснение, но може да излезе през носа. Ако не го измислиш предварително отвсякъде, после ще ти се окучи котката да пишеш List-файл в SPSS-а, ако не и процесорен файл. Голямо мислене ще трябва първо, техническото изпълнение е 5-о и 10-о.

anonymous
Чет, 22.10.09, 15:55
Ами тука стана нещо такова



PHROZEN................АЗ................................................КАКА.ЛАРА



Пояснявам - Фрозън говори за PERL, затова е с по-малко точки от мен, аз говоря за PHP, затова съм в средата. а КАКА.ВИ.ЛАРА говори за MS Office

Та кажи сега - кое избра да ти подсказваме за него, така всеки си предлага неговия начин!

phrozencrew
Чет, 22.10.09, 20:38
download_er, интересна ти е идеята с PHP, но малко ми се струва прекалена. А и толкова безсмислени заявки към MySQL, айде нема нужда.
Дай да видим дали не можем малко да оптимизираме цялата тая история, та хем да се схване напълно идеята,хем всеки да може да си добавя колкото въпроси си иска, хем да не ползваме MySQL, а простичък текстов файл.
Да започнем от HTML файла с формата. Намерих наготово една форма и ще използвам нея. Тоя файл да го кръстим home.html:
<form action="vote.php" method="post">
 <table>
 <tr>
  <td> <input type="radio" value="0" name="vote"> </td>
	<td> Bad </td>
 </tr>
 <tr>
  <td> <input type="radio" value="1" name="vote"> </td>
	<td> Normal </td>
 </tr>
 <tr>
  <td> <input type="radio" value="2" name="vote"> </td>
	<td> Good </td>
 </tr>
 <tr>
  <td colspan="2"> <input type="submit" name="submit"> </td>
 </tr>
 </table>
</form>

В директорията, в която съхранихме този файл, нека създадем една папка db и в нея да създадем един празен текстови файл vote.txt.
Сега да се заемем с обработката на формата от по-горе. Много простичка работа. Просто трябва да създадем файла vote.php, който заложихме като екшън файл от формата (<form action="vote.php" me...). Взимаме стойността на vote (value="..." name="vote") и я проверяваме дали отговаря на 0, 1 или 2. Ако отговаря на някоя от стойностите добавяме еденица към съответния вот:
<?php
$vote = $_POST['vote'];
//Предварително създаваме директория db
//и в нея правим един празен файл vote.txt
$filename = "db/vote.txt";
 
//с реда по-долу взимаме съдържанието на файла
$content = file($filename);
 
//правим масив, като сплитваме (разделяме) реда
//по разделящ символ "||"
$array = explode("||", $content[0]);
 
$bad = $array[0];
$normal = $array[1];
$good = $array[2];
 
if($vote == 0)  $bad = $bad + 1;
if($vote == 1)  $normal = $normal + 1;
if($vote == 2)  $good = $good + 1;
 
$insertvote = $bad."||".$normal."||".$good;
 
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
 
header("Location: stats.php");
?>

Чудесно! Записахме си в базата данни поредният вот и сега остава да визуализираме цялата тая простотия като отворим файла stats.php (чието съдържание е по-долу) в браузера си:
<?php
//Базата ни с данни :)
$filename = "db/vote.txt";
 
//Взимаме съдържанието на текстовия файл
$content = file($filename);
//Правим масив от данните
$array = explode("||", $content[0]);
 
$bad = $array[0];
$normal = $array[1];
$good = $array[2];
 
//Да изчислим основният процент :))
$e = ($bad+$normal+$good)/100;
//да си закръглим стойностите с плаваща запетая
$bad_proc = round($bad/$e);
$normal_proc = round($normal/$e);
$good_proc = round($good/$e);
 
echo "
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
\"http://www.w3.org/TR/html4/loose.dtd\">
<html>
  <head>
    <meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\">
    <title>Votting System</title>
   </head>
  <body>
 
 
<div style=\"line-height: 18px;\">
	<table><tr><td>
	Bad: $bad_proc%<br />
	Normal: $normal_proc%<br />
	Good: $good_proc%
	</td><td style=\"width: 200px; border: 1px solid silver;\">
	<div style=\"height: 18px; width: $bad_proc%; background: red; border: 1px solid #fff;\"></div>
	<div style=\"height: 18px; width: $normal_proc%; background: red; border: 1px solid #fff;\"></div>
	<div style=\"height: 18px; width: $good_proc%; background: red; border: 1px solid #fff;\"></div>
	</td></tr></table>
</div>
 
</body>
</html>
";
?>

Необходими инструменти за тестване Apache + PHP или просто някой XAMPP за Windows, като преди това си спрем Skype! При ползване на Xampp файловете се поставят в директорията htdocs, а след стартиране на Apache-то се отварят от адрес:
home.php или ако са в някоя поддиректория на htdocs\votesystem
http://localhost/htdocs/votesystem/home.php

ПС: Дано не съм объркал някой символ, че го писах на карамба. Абе я да сложа направо целия код: pollsystem.rar

dreamskill
Чет, 22.10.09, 20:55
Тва е много полезно, благодаря ти, Нед

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.