Checkbox im Formular

nordi

Erfahrenes Mitglied
Hi Leute, ich hab ne kleine Frage zu Checkboxes in Formularen. Ich soll ein Anmeldeformular machen, bei dem man aber den Teilnahmebedingungen zustimmen soll. Habe also dahinter eine Checkbox erstellt, die angekreuzt werden muss! Ich weiß aber nicht, wie ich das bestimmen soll? Die anderen Angaben funktionieren:

PHP:
<script language=JavaScript>
<!--
 function isValid() { 

   var msg = "";
   
   if (kontaktFormular.eMail.value.indexOf("@") < 1 ||
       kontaktFormular.eMail.value.indexOf(".") < 1) {
     msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n";
   }
   
   if(kontaktFormular.vorName.value == "") {
     msg += "- Empty Field: Surname:\n";
   }
   
   if(kontaktFormular.strasse.value == "") {
     msg += "- Empty Field: Street:\n";
   }
   
   if(kontaktFormular.nachName.value == "") {
     msg += "- Empty Field: Name:\n";
   }
   
   if(kontaktFormular.ort.value == "") {
     msg += "- Empty Field: City:\n";
   }

   if(kontaktFormular.betreff1.value == "") {
     msg += "- Empty Field: Your Videoname:\n";
   }

   if(kontaktFormular.nachricht.value == "") {
     msg += "- Empty Field: Your Vision:\n";
   }
   
    if(kontaktFormular.country.value == "") {
     msg += "- Empty Field: Country:\n";
   }
   
   if(msg == "") {
     return true;   
   }
   alert(msg);
   return false;
 }
-->
</script>
<?php
  
  $formularAnzeigen = false;
  if (!empty($_POST["senden"]) && (
      empty($_POST["vorName"]) ||
      empty($_POST["nachName"]) ||
      empty($_POST["eMail"]) ||
      empty($_POST["betreff1"]) ||
      empty($_POST["nachricht"]))) {
    $formularAnzeigen = true;
    echo '<span class="header"><center>Please fill out all required fields.</center></span><br><br>';
  } else if (!empty($_POST["senden"]) &&
             !isEmail($_POST["eMail"])) {
    $formularAnzeigen = true;  
    echo '<span class="header">Your Emailadress is not correct.</span>';
  } else if (empty($_POST["senden"])) {
    $formularAnzeigen = true;  
  }
  if ($formularAnzeigen) {
?>

Die Checkbox heißt wie folgt:
HTML:
Teinahmebedingungen 
        <label>
        <input type="checkbox" name="bedingungen" id="bedingungen" />
        </label>

Danke schon mal im voraus!
 
Hi, ich hoffe ich verstehe das richtig. Du willst wie z.B. bei Onlineshops wo man die AGB akzeptieren muss so eine checkbox, die auch ausgewählt werden muss oder ?

Dann machst du das am besten mit JavaScript.
Ich habs jetzt mal ausgelagert.
In der HTML Datei:
HTML:
  <SCRIPT language="JavaScript" SRC="check.js" type="text/javascript"></script>

<form onSubmit="return pruefen()" name="teilnahme" method="post">
      <input type="Checkbox" name="agb" value="v">
      <input type="submit" value="Ok"  name="Ok" class="right" tabindex="13"></input>
Aber in den richtigen bereich ;)

und die check.js sieht dann so aus.
HTML:
function pruefen(){
   // Damit ich nicht immer document.Fragebogen schreiben mus
   var f = document.teilnahme;
    //Pruefen ob Checkbox gecheckt wurde
    if(f.agb.checked==false){
    window.alert('Biite AGB akzptieren.')
    f.nachricht.select()
    return false;}
    // Liefert True zurück da alles korrekt ausgefüllt ist.
    else{
     return true
        }
}    // Funktion Pruefen ende.


Ich hoffe es geht so ;) ist nur fix zusammen gecodet.

grüße
crazy_down
 
Jop kannst du, ich hoffe ich verschreibe mich jetzt nicht.

HTML:
if(kontaktFormular.bedingungen.checked == false) { 
     msg += "- Empty Field: Bedingungen"; 
   }

Sollte so funktionieren.
 
Der Vollständigkeit halber das in PHP aber auch nochmal überprüfen,
denn mit JavaScript prüfst du ja nicht wirklich, was beim Script ankommt!
PHP:
if(!$_POST['checkbox']){
echo 'Sie müssen die Bedingungen akzeptieren!';
}
 
Hi, ich hab das doch ein wenig anders gelöst - habe aber ein Fehler drinnen, denke ich. Also wie schon erwähnt müssen einige Felder ausgefüllt werden, damit in die Datenbank geschrieben werden kann. Wichtig ist die Akzeptierung der Teilnahmebedingungen. Aber irgendwie schreibt er doch die Daten in die Datenbank, obwohl man bei der Teilnahmebedingungen kein Häckchen gesetzt hat. Hier der Code:

PHP:
      <?php
if($Send){
if ($vision == "" || $videoname == "" || $surname == "" || $name == "" || $email == "" || agb == "") {

echo "Please fill out all required fields!";
}

else

{
include("config.php"); 
$DatabasePointer=mysql_connect("$dbhost", "$dbuser", "$dbpass");
mysql_select_db("$dbtable", $DatabasePointer);


$SQL = "INSERT INTO $xmas (vision, videoname, surname, name, street, city, zipcode, country, mobil, email, newsletter) VALUES ('$vision', '$videoname', '$surname', '$name', '$street', '$city', '$zipcode', '$country', '$mobil', '$email', '$newsletter')";
mysql_query($SQL, $DatabasePointer);

echo "<span class=\"txt\">Thank you, <b>$surname $name</b></span>"; 
}}
?></div>

Die Teilnahmebedingungen sind mit
HTML:
<input type="checkbox" name="agb" id="agb" />
auf der Formularseite eingebettet. Woran kann das liegen?
 
am Dollarzeichen ;)
Fehlt in deiner if-Bedingung bei "agb" -> "$agb"
MfG

edit:
Allgemein rate ich dir, dir anzugewöhnen mit $_GET und $_POST zu arbeiten!
(Stichwort register_globals)
 
Zuletzt bearbeitet:
Ah super - danke! Hab ich glatt übersehen! :) Kann man auch diese "Error-Nachricht" (Please fill out all required fields) spezifizieren? Also wenn zum Beispiel nur Lastname nicht eingegeben wird, dass dann angegeben wird: "Please enter your lastname" oder ähnliches?
 
Hallo!

Klar geht's.....
PHP:
if($send) {
    if($vision == "") {
        echo "bla<br>";
    }
    if($videoname == "") {
        echo "blub<br>";
    }
    usw.....
} else {
Gruss Dr Dau
 

Neue Beiträge

Zurück