Как се прави анкета в интернет
Автор |
|
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 |
Тва е много полезно, благодаря ти, Нед | | Коментар |