evaluationsbogen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • evaluationsbogen

    hallo zusammen,

    ich versuche gerade einen evaluationsbogen zu programmieren und komme nicht ganz weiter.

    der bogen soll später einige fragen mehr enthalten, hier gibt es erst einmal ein paar, die ich so, wie sie sind verwenden will (von der art her):
    fasta.info/test/1_EVA/phpeva.html
    fasta.info/test/1_EVA/evaaction.phtml

    das problem, es wird keine .txt geschrieben und wie bekomme ich die .txt zugeschickt? geht das?
    und das fenster von "anregungen" läst sich nicht in der höhe verstellen...

    könnt ihr mir da weiterhelfen?


    HTML-Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    2. <html>
    3. <head><title>PHP Survey-</title></head>
    4. <body>
    5. <center><H2><FONT COLOR="#000099">Evaluationsboben der fastadesign*</FONT></H2></center>
    6. <form action=evaaction.phtml
    7. method="POST">
    8. <ul>
    9. <FONT COLOR="#CC0000"><b>Füll bitte alle Fragen aus. Die Daten werden natürlich anonym ausgewertet.</b></FONT></ul>
    10. <ul><ul>
    11. <p><li><strong>Name:</strong><INPUT TYPE="TEXT" NAME="name" size="35"></li>
    12. <p><li><strong>Nachname:</strong><INPUT TYPE="TEXT" NAME="major" size="35"></li>
    13. <P><li><strong>Geschlecht:</strong><br>
    14. <INPUT TYPE="RADIO" NAME="gender" value="male" size="35">Male<br>
    15. <INPUT TYPE="RADIO" NAME="gender" value="female" size="35">Female<br>
    16. </li>
    17. <!--meins-->
    18. <p><li><strong>Willst du weiter studieren?</strong><br>
    19. <input type="radio" name="studium" value="ja" size="25">Ja<br>
    20. <input type="radio" name="studium" value="nein" size="25">Nein<br>
    21. <input type="radio" name="studium" value="vielleicht" size="25">Vielleicht<br>
    22. </li>
    23. <p><li><strong>Deine Anregungen:</strong><br>
    24. <input type="text" name="anregungen" value="Dein Geschwafel" onFocus="if(this.value=='Dein Geschwafel')this.value='';" width="450" height="80"><br>
    25. </li></p></p>
    26. <!--meins-->
    27. <p><li><strong>Magst du die fastadesign* wirklich?</strong><p>
    28. <select name="evaluation">
    29. <option> oh, ihr seid so super duper schnuckelig - ich will ein kind von euch! :)
    30. <option> ja, geht so - ich würd euch jetzt nicht heiraten
    31. <option> ihr seid doch total dämlich! ich könnte das alles viel, viel besser als ihr dumpfbacken! </select>
    32. </li>
    33. </ul></ul>
    34. <ul><ul>
    35. <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="SUBMIT" >
    36. <INPUT TYPE="RESET" NAME="RESET" VALUE="RESET">
    37. </ul></ul>
    38. </FORM>
    39. <hr>
    40. </body>
    41. </html>
    Alles anzeigen



    PHP-Quellcode

    1. #!/usr/local/bin/php4
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    3. <html>
    4. <head>
    5. <title>PHP Survey</title>
    6. </head>
    7. <body>
    8. <?php
    9. $name = $_POST['name'];
    10. $major = $_POST['major'];
    11. $gender = $_POST['gender'];
    12. $studium = $_POST['studium'];
    13. $evaluation = stripslashes($_POST['evaluation']);
    14. echo($name . ", Willkommen auf unserem Evaluationsbogen");
    15. if (empty($name)) //Code checks if the name entered or not by empty fuction
    16. echo("You didn't enter your name<br>");
    17. if (empty($major)) //Code checks if the major entered or not by empty fuction
    18. echo("You didn't enter your name<br>");
    19. if (!isset($gender)) //Code checks if the gender chose or not by empty fuction
    20. echo("You didn't enter your name<br>");
    21. if (!isset($studium)) //Code checks if the gender chose or not by empty fuction
    22. echo("You didn't enter your name<br>");
    23. if (!isset($anregungen)) //Code checks if the gender chose or not by empty fuction
    24. echo("You didn't enter your name<br>");
    25. if (!isset($evaluation)) //Code checks if the gender chose or not by empty fuction
    26. echo("You didn't enter your name<br>");
    27. if (!empty($name) and !empty($major) and isset($gender) and isset($studium) and isset($anregungen) and isset($evaluation)){
    28. // save the answer to answer.txt file.
    29. $file="answer.txt";
    30. $st=fopen($file,"a+");
    31. if(!$st) {
    32. echo("Error:could not open $file");
    33. }
    34. else {
    35. //Specify sprintf format
    36. $format="%s\t%s\t%s\t%s\n";
    37. $satir = sprintf($format,$name,$major,$gender,$studium,$anregungen,$evaluation);
    38. //Write buffer to a file
    39. fwrite($st,$satir,strlen($satir));
    40. echo($name.",You answered the questions below; Thanks!");
    41. echo ("<p>Name: " . $name);
    42. echo ("<p>Major: " . $major);
    43. echo ("<p>Gender: " . $gender);
    44. echo ("<p>Studium: " . $studium);
    45. echo ("<p>Deine Anregungen: " . $anregungen);
    46. echo ("<p>Evaluation: " . $evaluation);
    47. fclose($st);}
    48. }
    49. else{
    50. echo("<h2>Please, answer all questions</h2>");
    51. }
    52. ?>
    53. </body>
    54. </html>
    Alles anzeigen
  • hallo, die .txt wird doch geschrieben, nur habe ich immer noch das problem mit dem textfenster, welches ich nicht in der weite und höhe einstellen kann

    Quellcode

    1. <p><li><strong>Deine Anregungen:</strong><br>
    2. <input type="text" name="anregungen" value="Anregungenl" onFocus="if(this.value=='Anregungen')this.value='';" width="450" height="80"><br> <!-- hier wird die angegebene höhe und weite nicht um gesetzt -->
    3. </li></p></p>
    4. <!--meins-->


    dann noch eine frage dazu, kann man diese auswertung später in einem balkendiagramm darstellen lassen?
  • Wenn du ein mehrzeiliges Eingabefeld suchst ist dies nicht <input type='text' /> sondern <textarea>.
    Valider Code:

    Quellcode

    1. <textarea name="anregungen" cols="100" rows="20"></textarea><br />

    Nachteil: Deine JS-Funktion ist nicht mehr so leicht umzusetzen. Wenn es dir wichtig ist, frag nochmal. Noch bin ich nicht sonderlich motiviert eine JS-Referenz aufzuschlagen um dir das rauszusuchen.
    Das solltest du selbst schaffen denke ich. Selbst gelerntes haelt besser.

    Das mit den Balkendiagrammen ist eher aufwaendig, dafuer ist es sinnvoller, das in einem anderen Format abzuspeichern. Wenn du noch nichts mit Datenbanken zu tun hast, wuerde ich dir folgendes Empfehlen:
    Gestalte deine Textdatei so oder so aehnlich:
    sex mfffmmmf
    study ynnnymmynny
    likeit 11123322211
    Mit diesem Format koenntest du leichter weiterarbeiten. Die genaue Ausarbeitung ueberlass ich dir.

    MfG
    snoggo
  • ah, danke für den hinweis mit dem textkasten :)

    ich bin leider gar nicht in php oder js bewandert. den code (siehe oben) hatte ich nur nach meinen vorstellungen angepasst. ich kann im moment nur codes nehmen und dann versuchen ihn logisch nach meinen bedürfnissen umzugestalten - deswegen klappt es auch noch nicht mit dem schreiben der .txt (so versuche ich zu lernen)

    mir wurde gesagt, dass hier ein fehler sein könnte, da ich mehrere anfragen habe aber nur 4 angegeben. wie ich das lösen kann, weiß ich noch nicht

    Quellcode

    1. else {
    2. //Specify sprintf format
    3. $format="%s\t%s\t%s\t%s\n";
    4. $satir = sprintf($format,$name,$major,$gender,$studium,$anregungen,$evaluation);
    5. //Write buffer to a file
    6. fwrite($st,$satir,strlen($satir));


    beim balkendiagramm weiß ich nicht, wenn es zu aufwendig ist, lass ich es lieber. die gestaltung der .txt hört sich schon besser an. kann man diese vorformatieren oder muss dein beispiel im php-code angegeben werden?
  • Ich wuerde dir empfehlen, HTML und PHP zu lernen, es gibt gute Tutorials und ist absolut nicht schwer.
    Da ich selbst momentan sehr beschaeftigt bin kann ich dir nicht viel weiterhelfen. So falsch sieht der Teil allerdings nicht aus.
    Ich finde beim Ueberfliegen keine Fehler.

    Wenn du dich noch nicht wirklich auskennst, kannst du deine Textdatei auch so belassen. Wenn du das auf das von mir gezeigte Format umwandeln willst, wird das schon erheblich aufwaendiger.

    Wie gesagt, lern die Sprache, kann dich nur vorranbringen :)

    MfG
    snoggo
  • ich bin gerade dabei mir ein paar bücher mit tutorialvideos zu suchen... mal schauen was es so gibt. :)

    anscheinend stimmt der obere teil nicht mit dem unteren überein - die \t%s stimmen wohl von der anzhal mit den darunterliegenden $name ... nicht überein, da ich 7 $name,... habe, müssen es wohl auch 7 \t%s sein, was bei mir jedenfalls nicht klappt. oder muss ich \n's schreiben?

    Quellcode

    1. $format="%s\t%s\t%s\t%s\n";
    2. $satir = sprintf($format,$name,$major,$gender,$studium,$anregungen,$evaluation);
  • Ich weiss gar nicht, wofuer du einen Umweg ueber sprintf gehst.

    Quellcode

    1. $file = 'answer.txt';
    2. $fp = fopen($file, 'a+');
    3. if(!$fp) {
    4. echo('Error: could not open '.$file);
    5. } else {
    6. $text = $name."\t".$major."\t".$gender."\t".$studium."\t".$anregungen."\t".$evaluation."\n";
    7. fwrite($fp, $text);
    8. }

    So wuerd ichs machen. Noch ein paar Sicherheiten einbauen und gut.

    Edit:
    Danke dynambee, habs korrigiert ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von snoggo ()

  • dynambee schrieb:

    ^^

    Quellcode

    1. $text = $name."\t".$major."\t".$gender."\t".$studium."\t".$anregungen."\t".$evaluation."\n";


    Achtung: Wenn die Eingabe ein mehrzeiliges Textfeld hat (<TEXTAREA>), dann können natürlich die Zeichen \t (tab) und \n (new line) in den Variablen drin vorkommen. D.h beim wieder einlesen der Datei (z.B. mit Excel) werden dann diese zeichen als Feldtrenner interpretiert was zu problemen führen kann.

    Also währe eventuell noch ein escapen dieser Zeichen sinnvoll.

    Quellcode

    1. function esc($input)
    2. {
    3. return (addcslashes ($input ,"\t\n"));
    4. }
    5. $text = esc($name)."\t". esc($major)."\t". esc($gender)."\t". esc($studium)."\t". esc($anregungen)."\t". esc($evaluation)."\n";
  • hallo,

    ich hätte noch eine kleine frage zu dem oben angegebenen code. ist es möglich das man mehrfachantworten für eine frage generieren kann?

    z.b.:

    Quellcode

    1. <li><strong>Überwelches Medium wirst du über unsere Aktionen informiert?</strong>
    2. <p>
    3. <input type="radio" name="mailseins" value="- Ich werde per Mail ueber euch informiert" size="25">Mail&nbsp;&nbsp;
    4. <input type="radio" name="mailszwei" value="- Ich werde per Plakate ueber euch informiert" size="25">Plakate&nbsp;&nbsp;
    5. <input type="radio" name="mailsdrei" value="- Ich werde per Flyer ueber euch informiert" size="25">Flyer&nbsp;&nbsp;
    6. <input type="radio" name="mailsvier" value="- Ich werde per Profs ueber euch informiert" size="25">Professoren&nbsp;&nbsp;
    7. <input type="radio" name="mailsfuenf" value="- Ich werde per Fasta-Website ueber euch informiert" size="25">Fasta-Website&nbsp;&nbsp;&nbsp;
    8. <input type="radio" name="mailssechs" value="- Ich werde per Fasta-Website ueber euch informiert" size="25">Komilitonen&nbsp;&nbsp;&nbsp;
    9. <input type="radio" name="mailssieben" value="- Ich werde mit allen angegebenen Medien ueber euch informiert" size="25">alle hier genannten Medien&nbsp;&nbsp;
    10. <input type="radio" name="mailacht" value="- Ich werde mit keinen der angegebenen Medien über euch informiert" size="25">keines der genannten Medien&nbsp;&nbsp;<br /><br />


    php

    PHP-Quellcode

    1. #!/usr/local/bin/php4
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    3. <html>
    4. <head>
    5. <title>PHP Survey</title>
    6. </head>
    7. <body>
    8. <?php
    9. $mailseins = $_POST['mailseins'];
    10. $mailseins = $_POST['mailszwei'];
    11. $mailseins = $_POST['mailsdrei'];
    12. $mailseins = $_POST['mailsvier'];
    13. $mailseins = $_POST['mailsfuenf'];
    14. $mailseins = $_POST['mailssechs'];
    15. $mailseins = $_POST['mailssieben'];
    16. $mailseins = $_POST['mailsacht'];
    Alles anzeigen


    hier geht es los - wie kann ich die multiplem antworten der eigentlichen hauptfrage (Überwelches Medium wirst du über unsere Aktionen informiert?), zusammengefasst in einer anfrage gegenchecken? so wie hier versucht, funktioniert das irgendwie nicht, da das programm dann jedesmal jeden einzelnen punkt abfragt.

    Quellcode

    1. if (!isset($mailseins)) //Code checks if the gender chose or not by empty fuction
    2. echo("Du hast vergessen anzugeben, über welche Medien Du von/über uns informiert wirst <br>");
    3. if (!empty($name) and isset($mailseins)){
    4. // save the answer to answer.txt file.
    5. function esc($input)
    6. {
    7. return (addcslashes ($input ,"\t\n"));
    8. }
    9. $file = 'answer.txt';
    10. $fp = fopen($file, 'a+');
    11. if(!$fp) {
    12. echo('Error: could not open '.$file);
    13. } else {
    14. $text = esc($mailseins)."\t"."\n";
    15. fwrite($fp, $text);
    16. }
    17. echo($name.", Danke, dass du alle Fragen beantwortet hast! <br>Wir versuchen deine Anregungen im kommenden Semester umzusetzen");
    18. echo ("<p>Information ueber diese Medien: " . $mailseins);
    19. echo ("<p>Information ueber diese Medien: " . $mailszwei);
    20. echo ("<p>Information ueber diese Medien: " . $mailsdrei);
    21. echo ("<p>Information ueber diese Medien: " . $mailsvier);
    22. echo ("<p>Information ueber diese Medien: " . $mailsfuenf);
    23. echo ("<p>Information ueber diese Medien: " . $mailssechs);
    24. echo ("<p>Information ueber diese Medien: " . $mailssieben);
    25. echo ("<p>Information ueber diese Medien: " . $mailsacht);
    26. fclose($st);
    27. }
    28. else{
    29. echo("<h2>Bitte geh eine Seite zurueck und beantworte alle Fragen,<br>
    30. damit wir unsere Arbeit fuer Euch verbessern koennen! Danke :)</h2>");
    31. }
    32. ?>
    Alles anzeigen
  • :rolleyes:


    Vergleiche mal

    Quellcode

    1. <input type="radio" name="Zahlmethode" value="Mastercard"> Mastercard<br>
    2. <input type="radio" name="Zahlmethode" value="Visa"> Visa<br>
    3. <input type="radio" name="Zahlmethode" value="AmericanExpress"> American Express


    mit

    Quellcode

    1. <input type="radio" name="mailseins" value="- Ich werde per Mail ueber euch informiert" size="25">Mail&nbsp;&nbsp;
    2. <input type="radio" name="mailszwei" value="- Ich werde per Plakate ueber euch informiert" size="25">Plakate&nbsp;&nbsp;
    3. <input type="radio" name="mailsdrei" value="- Ich werde per Flyer ueber euch informiert" size="25">Flyer&nbsp;&nbsp;


    Wo ist der Unterschied?
  • ok, ich seh nichts falsches.
    - bei mir sind keine weichen umbrüche, da alle anklickpunkte nebeneinander liegen - deshalb auch die leerzeichen -> je 2x &nbsp;
    - bei mir sind bei value"- <- striche davor, gehört aber zum text
    - bei mir ist die größe des punktes angegeben size="25"

    sonst seh ich nix, hilft mir aber jetzt wahrscheinlich auch bei meinem problem nicht weiter. zu mindestens versteh ich nicht was du willst - schreib doch einfach was los ist... ?( :S

    ich würde gern, dass man mehrere punkte anklicken kann, nicht nur einen bei einer frage - z.b.: bei "mail", "plakate", "flyer" und von mir aus noch bei "professoren". bis jetzt ist es nur möglich einen der punkte aufzurufen. ?(
  • ok, noch mal:

    genau das war ja mein problem - hatte ich auch oben so schon angeführt, dass ich bei genau diesem versuch stecken geblieben bin und beim auslesen nicht weiterkam.

    ich suche also eine mögichkeit eine mehrfachlösung für eine einzige frage zu bekommen. zb:

    "was liest du gern?
    1. actioncomic
    2. pferdebücher
    3. fantasy
    4. scifi
    5. zeitung
    6. kochbuch"

    hier möchte ich erreichen, und das klappt eben mit der jetzigen programmierung nicht, dass man hier z.b. 1. 3. und 5. auswählen kann und dieses ergebniss auch in der answer.txt datei gespeichert wird. im moment kann man nur 1. 2. 3. 4. 5. oder 6. auswählen... :!:
  • danke für den hinweis, :)
    ich hab es versucht so einzusetzen, nur gibt es bei mir komischerweise einen parse-fehler im php-quellcode (siehe unten), den ich nicht erkenne.
    man muss doch im oho code alle "maileins" auf "maileins_array" erweitern?
    bei selfhtml wurde vor den html-"fragen" <form> eingesetzt, hat das eventuell was zu bedeuten? ich hatte den code damals zum teil so bekommen und entsprechend meinen anforderungen angepasst. bis jetzt funktionierte das auch alles ohne <form>...



    html:

    Quellcode

    1. <li>
    2. <strong>Überwelches Medium wirst du über unsere Aktionen informiert (mehrere Antworten möglich)?</strong>
    3. <p>
    4. <input type="checkbox" name="mailseins[]" value="- Ich werde per Mail ueber euch informiert" size="25">Mail&nbsp;&nbsp;
    5. <input type="checkbox" name="mailseins[]" value="- Ich werde per Plakate ueber euch informiert" size="25">Plakate&nbsp;&nbsp;
    6. <input type="checkbox" name="mailseins[]" value="- Ich werde per Flyer ueber euch informiert" size="25">Flyer&nbsp;&nbsp;
    7. <input type="checkbox" name="mailseins[]" value="- Ich werde per Profs ueber euch informiert" size="25">Professoren&nbsp;&nbsp;
    8. <input type="checkbox" name="mailseins[]" value="- Ich werde per Fasta-Website ueber euch informiert" size="25">Fasta-Website&nbsp;&nbsp;&nbsp;
    9. <input type="checkbox" name="mailseins[]" value="- Ich werde per Fasta-Website ueber euch informiert" size="25">Komilitonen&nbsp;&nbsp;&nbsp;
    10. <input type="checkbox" name="mailseins[]" value="- Ich werde mit allen angegebenen Medien ueber euch informiert" size="25">alle hier genannten Medien&nbsp;&nbsp;
    11. <input type="checkbox" name="mailseins[]" value="- Ich werde mit keinen der angegebenen Medien über euch informiert" size="25">keines der genannten Medien&nbsp;&nbsp;<br /><br />
    12. </li>
    Alles anzeigen


    php:

    Quellcode

    1. $mailseins_array = $_POST['mailseins'];


    Quellcode

    1. if (!isset($mailseins_array)) //Code checks if the gender chose or not by empty fuction
    2. echo("Du hast vergessen anzugeben, über welche Medien Du von/über uns informiert wirst <br>");


    der fehler soll in dieser ersten zeile liegen:

    Quellcode

    1. if (!empty($name) and isset($gender) and isset($badip) and isset($fach) and isset($semester) and isset($machen) and isset($mailseins_array) and isset($finanzen) and and isset($ansprechen) and isset($interessen) and isset($vortrag) and isset($workshop) and isset($gebuehren) and isset($informationen) and isset($anregungen)){
    2. // save the answer to answer.txt file.
    3. function esc($input)
    4. {
    5. return (addcslashes ($input ,"\t\n"));
    6. }
    7. $file = 'answer.txt';
    8. $fp = fopen($file, 'a+');
    9. if(!$fp) {
    10. echo('Error: could not open '.$file);
    11. } else {
    12. $text = esc($name)."\t".esc($mailseins_array)."\n";
    13. fwrite($fp, $text);
    14. }
    15. echo($name.", Danke, dass du alle Fragen beantwortet hast! <br>Wir versuchen deine Anregungen im kommenden Semester umzusetzen");
    16. echo ("<p>Dein Name: " . $name);
    17. echo ("<p>Information ueber diese Medien: " . $mailseins_array);
    18. fclose($st);
    19. }
    20. else{
    21. echo("<h2>Bitte geh eine Seite zurueck und beantworte alle Fragen,<br>
    22. damit wir unsere Arbeit fuer Euch verbessern koennen! Danke :)</h2>");
    23. }
    24. ?>
    Alles anzeigen
  • Du bekommst mit $_POST["mailseins"] ein sog. [wikipedia]Array[/wikipedia] ausgegeben, dass die angekreuzten Kästchen enthält.

    Ob ein Array Daten enthält - sprich: ob überhaupt irgendwas angekreuzt wurde - kannst Du mit

    Quellcode

    1. if(count($array)>0){ // Die Anzahl der Elemente im Array ist größer 0, also wurde etwas angekreuzt...
    2. }



    überprüfen. Auf die Werte des Arrays greifst Du z.B. mit einer Schleife zu:

    Quellcode

    1. foreach($array as $element){ print $element;
    2. }



    Leichter ist es in Deinem Fall mit implode():

    Quellcode

    1. $KommaSeperierteListeDerWerteAusDemArray = implode(",",$array);



    Zu Deiner <form>-Frage:

    de.selfhtml.org/html/formulare/definieren.htm