Umfrage-Script gesucht
Sven
- cgi
Hallo allerseits!
Ich suche händeringend ein Script, um eine Umfrage auszuwerten! Dabei bin ich aber nicht an einem dieser primitiven "Antwort A, Antwort B, Antwort C"-Anklick-Scripte interessiert, sondern ich suche etwas komplexeres:
Die Umfrage besteht aus mehreren Fragen. Einige Fragen sollen mit Radio-Buttons sein (also nur eine Auswahl möglich) und andere Fragen sollen auch mehrere Antworten zulassen. Und dann sollen da noch Textfelder sein, in die man irgendwas eintragen kann. Die Auswertung soll dabei wie folgt aussehen: Die Anklick-Antworten in Prozentzahlen (grafische Balken und die Angabe der Gesamtstimmen wär schön) und die Text-Eingaben sollen einfach unter der jeweiligen Frage untereinander aufgelistet werden.
Weiß jemand, ob es so ein Script (CGI oder PHP, bitte ohne Datenbank!) gibt und wo ich das als Download finden kann?
Wäre Euch tierisch dankbar! :-)
Gruß,
Sven
Hallo Sven,
ob's das genauso gibt - keine Ahnung!
Hier meine Links zu diesem Thema (oft unter "Quiz" behandelt):
http://privat.schlund.de/O/Official/quizapplet-e.htm
http://academic1.bellevue.edu/javaquiz/index.html
http://members.nbci.com/craigbeattie/craig/javastuff/utils/quiz.html
und hier noch eine einfache Umfrage mit grafischer Auswertung:
http://www.cgi-world.com/pollit.html
HTH
Thomas Rupp
Hallo Sven,
Die Umfrage besteht aus mehreren Fragen. Einige Fragen sollen mit Radio-Buttons sein (also nur eine Auswahl möglich) und andere Fragen sollen auch mehrere Antworten zulassen. Und dann sollen da noch Textfelder sein, in die man irgendwas eintragen kann. Die Auswertung soll dabei wie folgt aussehen: Die Anklick-Antworten in Prozentzahlen (grafische Balken und die Angabe der Gesamtstimmen wär schön) und die Text-Eingaben sollen einfach unter der jeweiligen Frage untereinander aufgelistet werden.
Normalerweise werden Umfragen komplexerer Art mit komplexeren Programmen wie bspws. SSPS ausgewertet (ca.8000,-), aber das ist wohl eher nix für den Hausgebrauch.
Weiß jemand, ob es so ein Script (CGI oder PHP, bitte ohne Datenbank!) gibt und wo ich das als Download finden kann?
Hier ein Vorschlag: nimm doch ein script, welches dir die beantworteten Formulare in eine *.csv Datei schreibt (einfach jeden Datensatz mit Perl hintendrankleben) und dann hol dir das ding vom Server ab. Die Datei kannst du mit jedem besseren Office Programm visualisieren wie du willst. Geht natürlich nicht online, aber musst du für die Auswertung wirklich den Server quälen???
BYE
Ed X
Normalerweise werden Umfragen komplexerer Art mit komplexeren Programmen wie bspws. SSPS ausgewertet (ca.8000,-), aber das ist wohl eher nix für den Hausgebrauch.
*g* Nicht wirklich! Das sprengt meine Portokasse dann doch etwas... ;-)
Hier ein Vorschlag: nimm doch ein script, welches dir die beantworteten Formulare in eine *.csv Datei schreibt (einfach jeden Datensatz mit Perl hintendrankleben) und dann hol dir das ding vom Server ab. Die Datei kannst du mit jedem besseren Office Programm visualisieren wie du willst.
Klingt immerhin besser, als den ganzen Kram von Hand aus der Mail zu kopieren... Kennst Du vielleicht ein brauchbares Script was das kann?
Gruß,
Sven
hallo Sven,
also ich kann und will dir nicht die ganze Arbeit abnehmen. Ich hoffe du verstehst die Grundlagen von Perl. Dieses Script habe ich eigentlich für eine große Umfrage geschrieben. Es sendete nach jedem Eintrag die Daten an eine E-mailadresse mit einer *.csv datei von jedem datensatz im Anhang. Außerdem wurden die Daten in einer großen *.csv Datei auf dem Server gesammelt. Das ist wohl dann das was du brauchst.
<------------schnipp------------------>
#!f:/copyprog/perl56/bin/perl.exe -w
$filename = 'umfrage'; # name of the created file
$ext = '.csv'; # extension(include the dot!!!!)
$TZ = 1; # serverzeitabweichung von Greewich
############################################################################
&get_date;
&parse_form;
&write_csv;
print "Location: http://(nach wo auch immer)\n\n";
#####################################################################
sub get_date {
# Define arrays for the day of the week and month of the year. #
my @days = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
my @months = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep',
'Oct','Nov','Dec');
# Get the current time and format the hour, minutes and seconds. Add #
# 1900 to the year to get the full 4 digit year. #
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$jday,$offs) = (localtime(time))[0,1,2,3,4,5,6,7,8];
my $nowtime = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
$year += 1900;
my $TimeZ += sprintf("%1d00",$offs+$TZ);
# Format the date. #
$date = "$days[$wday], $mday $months[$mon] $year $nowtime +0$TimeZ";
}
sub parse_form {
local ($buffer, @pairs, $pair, $name, $value);
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else
{
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
local($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# erases SSI, if included (from Matt Wright's FormMail)
$value =~ s/<!--(.|\n)*-->//g;
if ($Form{$name} && $value)
{
$Form{$name} = "$Form{$name},$value";
}
elsif ($value)
{
push(@Fields,$name);
$Form{$name} = $value;
}
}
}
sub write_csv {
if(-f $filename.$ext)
{
open(CSVFILE, ">>$filename$ext") || die "Fehler beim Oeffnen der Datei";
foreach $field (@Fields)
{
if ($Form{$field})
{
print CSVFILE "$Form{$field};";
}
}
print CSVFILE "\n";
close(CSVFILE);
}
else
{
&new_file;
}
}
sub new_file {
open(CSVFILE,">$filename$ext") || die "Fehler beim Erstellen der Datei";
print CSVFILE "date;";
foreach $field (@Fields)
{
if ($field)
{
print CSVFILE "$field;";
}
}
print CSVFILE "\n";
print CSVFILE "$date;";
foreach $field (@Fields)
{
if ($Form{$field})
{
print CSVFILE "$Form{$field};";
}
}
print CSVFILE "\n";
close(CSVFILE);
}
<-------schnapp------------------>
ließ es dir durch und verstehe es(hoffe ich)
wiegesagt es sind nur die rudimantären funktionen.
Bye Ed X
hallo Sven,
uuups, da war noch ein Fehler drin:
ind er write_csv subroutine muss noch das Datum eingefügt werden.
<------------schnipp------------------>
sub write_csv {
if(-f $filename.$ext)
{
open(CSVFILE, ">>$filename$ext") || die "Fehler beim Oeffnen der Datei";
print CSVFILE "date;";
foreach $field (@Fields)
{
if ($Form{$field})
{
print CSVFILE "$Form{$field};";
}
}
print CSVFILE "\n";
close(CSVFILE);
}
else
{
&new_file;
}
}»» <-------schnapp------------------>
Bye Ed X
Hallo Ed!
Vielen Dank! Werde sehen, was ich damit anfangen kann! :-)
Gruß,
Sven
hallo Sven,
uuups, da war noch ein Fehler drin:
ind er write_csv subroutine muss noch das Datum eingefügt werden.
<------------schnipp------------------>
writes the datas into the db(*.csv)-file
sub write_csv {
if(-f $filename.$ext)
{
open(CSVFILE, ">>$filename$ext") || die "Fehler beim Oeffnen der Datei";
print CSVFILE "date;";
foreach $field (@Fields)
{
if ($Form{$field})
{
print CSVFILE "$Form{$field};";
}
}
print CSVFILE "\n";
close(CSVFILE);
}
else
{
&new_file;
}
}»» <-------schnapp------------------>
Bye Ed X