Checkboxen auswerten

CHTMLVBFeli

Mitglied
Hi Leute :D,
ich hab mal wieder ein kleines Problem!
Ich erstelle eine kleine Umfrage und hab darin ein paar CheckBoxen, mit denen man einen Grund auswählen kann. Nun bastle ich daran, dass das Formular nur abgeschickt wird, wenn alle Angaben ausgefüllt sind (mit JavaScript).
Da gibt es aber einen Fehler! Ich möchte die Daten in MySQL eintragen (indem ich das an PHP weiterleite). HIER das HTML:
HTML:
<?php
include "./mysql/mysql.php";
$query = "SELECT MAX(id) FROM umfrage";
$last_id = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($last_id);
$letzteid = $row['MAX(id)'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
input.wann2 {width: 4em;}
input.oft1 {width: 4em;}
input.lange1 {width: 4em;}

</style>
<script type="text/javascript">
function nurZahlen(el)
{
  var val = el.value.replace(/[^\.^,\d]/g, '');
  el.value = val;
}


</script>
<script type="text/javascript">
function eingaben(formular) {
   var f = document.getElementById('form1');
   if (!f.mann.checked
      && !f.frau.checked) {
      f.frau.style.border = "2px solid red";
      f.mann.style.border = "2px solid red";
    alert("Sie haben kein Geschlecht ausgewählt");
    f.frau.focus();
    return false;
   }else{
         f.mann.style.border='2px solid #00FF7F';
         f.frau.style.border='2px solid #00FF7F';
   }

  if (f.age.value == "") {
    f.age.style.border = "2px solid red";
    alert("Sie haben kein Alter eingegeben");
    f.age.focus();
    return false;
   }else{
         f.age.style.border = "2px solid #00FF7F";
   }
   if (!f.ja1.checked
      && !f.nein1.checked) {
         f.ja1.style.border = "2px solid red";
         f.nein1.style.border = "2px solid red";
         alert("Sie haben keine Antwort auf Frage 1 eingegeben");
         f.ja1.focus();
         return false;
   }else{
         f.ja1.style.border = "2px solid #00FF7F";
         f.nein1.style.border = "2px solid #00FF7F";
         if (f.ja1.checked)
         {
                 if (f.was1.value=="")
                 {
                         f.was1.style.border = "2px solid red";
                         alert("Bitte tragen sie eine Sportart ein!");
                         f.was1.value="";
                         f.was1.focus();
                         return false;
                 }else{
                         f.was1.style.border = "2px solid #00FF7F";
                 }
                 if (f.oft1.value=="")
                 {
                         f.oft1.style.border = "2px solid red";
                         alert("Bitte tragen sie ein, wie oft sie Sport machen!");
                         f.oft1.value="";
                         f.oft1.focus();
                         return false;
                 }else{
                         f.oft1.style.border = "2px solid #00FF7F";
                 }
                 if (f.lange1.value=="")
                 {
                         f.lange1.style.border = "2px solid red";
                         alert("Bitte tragen sie ein, wie lange sie Sport machen!");
                         f.lange1.value="";
                         f.lange1.focus();
                         return false;
                 }else{
                         f.lange1.style.border = "2px solid #00FF7F";
                 }
         }
   }
   if (!f.ja2.checked
      && !f.nein2.checked) {
         f.ja2.style.border = "2px solid red";
         f.nein2.style.border = "2px solid red";
         alert("Sie haben keine Antwort auf Frage 2 eingegeben");
         f.ja2.focus();
         return false;
   }else{
         f.ja2.style.border = "2px solid #00FF7F";
         f.nein2.style.border = "2px solid #00FF7F";
         if(f.texti.value=="")
         {
                 f.texti.style.border = "2px solid red";
                 alert("Bitte geben Sie eine Erläuterung ein!");
                 f.texti.focus();
                 return false;
         }
         else
         {
                 f.texti.style.border = "2px solid #00FF7F";
         }
   }
   if (!f.ja3.checked
      && !f.nein3.checked) {
         f.ja3.style.border = "2px solid red";
         f.nein3.style.border = "2px solid red";
         alert("Sie haben keine Antwort auf Frage 3 eingegeben");
         f.ja3.focus();
         return false;
      }
      else
      {
         f.ja3.style.border = "2px solid #00FF7F";
         f.nein3.style.border = "2px solid #00FF7F";
         if(f.ja3.checked)
         {
                 if(f.wann3.value=="")
                 {
                         f.wann3.style.border = "2px solid red";
                         alert("Bitte geben Sie ein, nach wie viel Minuten/Stunden ein solches Gefühl auftrat!");
                         f.wann3.focus();
                         return false;
                  }else{
                         f.wann3.style.border = "2px solid #00FF7F";
                 }
         }
      }
      if (!f.ja4.checked
       && !f.nein4.checked) {
         f.ja4.style.border = "2px solid red";
         f.nein4.style.border = "2px solid red";
         alert("Sie haben keine Antwort auf Frage 4 eingegeben");
         f.ja4.focus();
         return false;
      }else{
         f.ja4.style.border = "2px solid #00FF7F";
         f.nein4.style.border = "2px solid #00FF7F";
         if(f.ja4.checked)
         {
                 if(f.welche4.value=="")
                 {
                         f.welche4.style.border = "2px solid red";
                         alert("Bitte geben Sie ein, welche Erfahrungen Sie gesammelt haben!");
                         f.welche4.focus();
                         return false;
                 }
                 else
                 {
                         f.welche4.style.border = "2px solid #00FF7F";
                 }
         }
      }
      alert("TEST");
      if(!f.getElementById("1").checked)
      {
         alert("PEnner");
      }else{
         alert("ghj");
      }

  return false;
}
</script>

<title>Umfrage</title>
<meta name="author" content="Felix Gohla">
<meta name="editor" content="html-editor phase 5">
<link href="http://www.al5pkumfrage.bplaced.net/favicon.ico" rel="shortcut icon" />
<link rel="icon" href="http://www.al5pkumfrage.bplaced.net/favicon.ico" type="image/ico" />
</head>
<body text="#000000" bgcolor="#F0F0F0" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<center>
<div>
<font face="Arial" style="font-size: 35px;" color="darkblue">
Umfrage zum Thema <i>"Runners-High"</i> <br>
Phänomen
</font>
</div>

</center>
<div>
<font face="Arial" style="font-size:20px;" color="black">
<b><u>Fragen zu Ihren sportlichen Gewohnheiten und zum "Runner´s High"-Phänomen</u></b>
</font>
</div>
<br>
<div>

<form id="form1" name="form1" action="./umfr.html" method="post" onsubmit="return eingaben(document.form1);">
<font face="Arial" style="font-size: 15px;" color="black">
<div>Geschlecht: <input type="radio" id="frau" name="frau" value="Weiblich" onclick="javasctipt:document.getElementById('mann').checked=false">Weiblich <input type="radio" onclick="javasctipt:document.getElementById('frau').checked=false" id="mann" name="mann" value="Männlich">Männlich &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ihr Alter: <input class="age" type="text" size="1" id="age" name="age"> <br>
<br>
</font>
<font face="Arial" style="font-size: 18;" color="black">
I.   Treiben Sie regelmäßig Sport? <input type="radio" id="ja1" name="ja1" value="ja" onclick="javascript:document.getElementById('nein1').checked=false; this.form.was1.disabled=false; this.form.oft1.disabled=false; this.form.lange1.disabled=false; this.form.hours1.disabled=false; this.form.minutes1.disabled=false;">ja <input type="radio" name="nein1" id="nein1" value="nein" onClick="javascript:document.getElementById('ja1').checked=false; this.form.was1.disabled=true; this.form.oft1.disabled=true; this.form.lange1.disabled=true; this.form.hours1.disabled=true; this.form.minutes1.disabled=true">nein <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.Wenn ja, welchen?<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <textarea margin-top="100" padding="10" rows="1" cols="30" maxlength="30" name="was1" id="was1" style="overflow: auto; resize:none;" disabled="disabled"></textarea>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.Wie oft und wie lange?<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" disabled="true" onkeyup="nurZahlen(this)" name="oft1" id="oft1" class="oft1" maxlength="5"> mal und <input disabled="disabled" type="text" maxlength="5" id="lange1" name="lange1" class="lange1"> <input onclick="javascript:document.getElementById('hours1').checked=false" type="radio" name="minutes1" id="minutes1" checked="checked" disabled="disabled">Minuten <input type="radio" disabled="disabled" onclick="javascript:document.getElementById('minutes1').checked=false" name="hours1" id="hours1">Stunden
<br><br>
II.  Kennen Sie das "Runners-High" Phänomen? <input type="radio" id="ja2" name="ja2" value="ja" onclick="javascript:this.form.texti.disabled=false;this.form.texti.value=''; document.getElementById('nein2').checked=false">ja <input type="radio" name="nein2" id="nein2" value="nein" onClick="javascript:this.form.texti.disabled=true;this.form.texti.value='Hier erläutern'; document.getElementById('ja2').checked=false">nein <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.Wenn ja, bitte erläutern sie dies kurz! <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea disabled="true" name="texti" align="bottom" style="resize:none; overflow:auto;" COLS="50" ROWS="10">Hier erläutern</textarea>
<br><br>
III. Haben Sie ein solches Gefühl schon einmal selbst erlebt? <input type="radio" id="ja3" name="ja3" value="ja" onClick="javascript:this.form.oft3.disabled=false;this.form.wann3.disabled=false;this.form.minutes3.disabled=false;this.form.hours3.disabled=false;document.getElementById('nein3').checked=false">ja <input type="radio" name="nein3" id="nein3" value="nein" onClick="javascript:this.form.oft3.disabled=true;this.form.wann3.disabled=true;this.form.minutes3.disabled=true;this.form.hours3.disabled=true;document.getElementById('ja3').checked=false;">nein
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. Wenn ja, wie oft? <select name="oft3" id="oft3" type="text" size="1" disabled="true"><option name="12">1 bis 2 mal</option><option name="35">3 bis 5 mal</option><option name="610">6 bis 10 mal</option><option name="more">mehr</option></select>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Wenn ja, zu welchem Zeitpunkt (nach wie viel Minuten/Stunden) trat dieses Hochgefühl ungefähr auf? <input name="wann3" id="wann3" type="text" maxlength="5" disabled="true" onkeyup="nurZahlen(this)" class="wann3"> <input onclick="javascript:document.getElementById('hours3').checked=false" type="radio" name="minutes3" id="minutes3" checked="checked" disabled="disabled">Minuten <input type="radio" disabled="disabled" onclick="javascript:document.getElementById('minutes3').checked=false" name="hours3" id="hours3">Stunden
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Oder haben Sie etwas anderes Erstaunliches während einer sportlichen Ertüchtigung gefühlt?
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <textarea id="anderes3" name="anderes3" cols="40" maxlength="40" rows="1" style="overflow:auto; resize:none;" /></textarea>
<br><br>
IV.   Haben Sie bereits negative Erfahrungen beim Ausdauersport z.B. Verletzungen, etc.) gesammelt?  <input type="radio" id="ja4" name="ja4" value="ja" onClick="javascript: document.getElementById('nein4').checked=false; this.form.welche4.disabled=false;">ja <input type="radio" id="nein4" name="nein4" value="nein" onClick="javascript: document.getElementById('ja4').checked=false;this.form.welche4.disabled=false;">nein
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. Wenn ja, welche?
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <textarea name="welche4" id="welche4" cols="98" rows="3" maxlength="400" style="overflow:auto; resize:none;" disabled="true"></textarea>
<br><br>
<center>
<hr size="1" noshade style="color: black; width:1200px;">
</center>
<br><br>
<font face="Arial" style="font-size:20px;" color="black">
<b><u>Fragen zur Ausrüstung</u></b>
</font>
<br><br>
V.     Wie viele Sportschuhe besitzen Sie?  <select name="viele5" id="viele5" size="1"><option name="0p">keine</option><option name="1p">1 Paar Schuhe</option><option name="2p">2 Paar Schuhe</option><option name="3p">3 Paar Schuhe</option><option name="4p">4 Paar Schuhe</option><option name="mp">mehr</option></select>
<br><br>
VI.    Wie oft kaufen Sie neue Sportschuhe? <Select name="oft6" id="oft6" size="1"><option id="mj">mehrmals im Jahr</option><option id="2j">1-2 mal im Jahr</option><option id="a2j">ca. alle 2 Jahre</option><option id="saa2j">seltener als alle 2 Jahre</option></Select>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. Aus welchen Gründen?  (Mehrfachauswahl möglich)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="checkbox" name="grund[]" id="1" value="1">1) um bessere Erfolge in ihrem Sport erzielen zu können?
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="checkbox" name="grund[]" id="2" value="2">2) lediglich, wenn die alten kaputt sind?
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="checkbox" name="grund[]" id="3" value="3">3) weil Ihnen eine Werbung sehr gut gefallen hat?
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="checkbox" name="grund[]" id="4" value="4">4) um eine neue Sportart auszuprobieren?
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="checkbox" name="grund[]" id="5" value="5">5) um für verschiedene Bedingungen eine Auswahl zu haben?


</font>
<br>
<br>
<input type="submit" value="Abschicken">
</form>
</div>
</body>
</html>

und hier PHP:
PHP:
<html>
<head>
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="./favicon.ico" type="image/vnd.microsoft.icon" />
</head>
</html>
<?php
include("./umfr.html");
?>
<?php

if(isset($_POST["age"]))
{
         include "./mysql/mysql.php";

         $frau=$_POST["frau"];
         $mann=$_POST["mann"];
         if($frau=="")
         {
                 $geschlecht="mr";
         }else{
                 $geschlecht="mrs";
         }
         $age=$_POST["age"];
         $ja1=$_POST["ja1"];
         $was1=$_POST["was1"];
         $oft1=$_POST["oft1"];
         $lange1=$_POST["lange1"];
         $minutes1=$_POST["minutes1"];
         $hours1=$_POST["hours1"];
         $ja2=$_POST["ja2"];
         $nein2=$_POST["nein2"];
         $text2=$_POST["texti"];
         $oft3=$_POST["oft3"];
         $minutes3=$_POST["minutes3"];
         $hours3=$_POST["hours3"];
         $wann3=$_POST["wann3"];
         $ja3=$_POST["ja3"];
         $anderes3=$_POST["anderes3"];
         $ja4=$_POST["ja4"];
         $welche4=$_POST["welche4"];
         $viele5=$_POST["viele5"];
         $oft6=$_POST["oft6"];
         $gr = $_POST["grund[]"];
         echo $gr,"<br><br><br>";

         if($anderes3=="")
         {
                 $anderes3="---";
         }
         if (isset($_POST["grund"]))
         {
                          $grund=implode($gr);
                          echo $gr,"<br><br><br>";
         }
         else
         {
                 $grund="1";
                 echo $gr,"<br><br><br>";
         }
         echo"<script>alert(\"$grund\")</script>";
         if($ja1=="")
         {
                 $bool1="0";
         }else
         {
                 $bool1="1";
         }
         if($minutes1 == "on")
         {
                 $mh1="m";
         }else
         {
                 $mh1="h";
         }
         if($minutes3 == "on")
         {
                 $mh3="m";
         }else
         {
                 $mh3="h";
         }
         if($oft3 == "1 bis 2 mal")
         {
                 $oft3="12";
         }else if($oft3 == "3 bis 5 mal")
         {
                 $oft3="35";
         }else if($oft3 == "6 bis 10 mal")
         {
                 $oft3="610";
         }
         else
         {
                 $oft3="700";
         }
         if($text2=="")
         {
                 $text2="---";
         }

         if($ja2=="")
         {
                 $bool2="0";
         }else{
                 $bool2="1";
         }
         if($ja3=="")
         {
                 $bool3="0";
         }else{
                 $bool3="1";
         }
         if($ja4=="")
         {
                 $bool4="0";
         }else
         {
                 $bool4="1";
         }
         if ($viele5 == "1 Paar Schuhe")
         {
                 $viele5="1";
         }elseif($viele5 == "2 Paar Schuhe")
         {
                 $viele5="2";
         }elseif($viele5 == "3 Paar Schuhe")
         {
                 $viele5="3";
         }elseif($viele5 == "4 Paar Schuhe")
         {
                 $viele5="4";
         }elseif($viele5 == "mehr")
         {
                 $viele5="10";
         }
         if ($oft6 == "mehrmals im Jahr")
         {
                 $oft6="1";
         }elseif($oft6 == "1-2 mal im Jahr")
         {
                 $oft6="2";
         }elseif($oft6 == "ca. alle 2 Jahre")
         {
                 $oft6="3";
         }elseif($oft6 == "seltener als alle 2 Jahre")
         {
                 $oft6="4";
         }elseif($oft6 == "keine")
         {
                 $oft6="0";
         }

         mysql_query("INSERT INTO umfrage(geschlecht, age, bool1, was1, oft1, lange1, mh1, bool2, text2, bool3, oft3, wann3, mh3, anderes3, bool4, welche4, viele5, oft6, gr6)
              VALUES('$geschlecht', '$age', '$bool1', '$was1', '$oft1', '$lange1', '$mh1', '$bool2', '$text2', '$bool3', '$oft3', '$wann3', '$mh3', '$anderes3', '$bool4', '$welche4', '$viele5', '$oft6', '$grund')") or die(mysql_error());
}
?>
PHP empfängt die Daten nur wenn ich die checkboxen name="grund[]" setze, aber JavaScript nur wenn ich name="grund" setze.
Hilfe
Vielen Dank im Voraus :D :D
CHTMLVBFeli
 
So du mehrere input type="checkbox" name="grund[]" Elemente in einem Formular hast, so sind diese im Browser-DOM dann als Kollektion auffindbar, also
Code:
form.elements["grund[]"]
ist eine Kollektion von input-Elementen, die man dann z.b. per "for"-Schleife durchlaufen kann. Siehe auch http://www.jibbering.com/faq/notes/form-access/#faBut.
Das ist eigentlich alles, was man wissen muss, so man für PHP auf dem Server einen Namen wie "grund[]" für mehrere Elemente wählt, die man auch im Browser per Javascript verarbeiten will.
 
Zurück