Chechbox abfragen ?

giesi

Grünschnabel
Hallo,

ich will eine Checkbox in einem Formular abfragen. Die Übermittlung der Daten soll erst erfolgen, wenn die Checkbox aktiviert bzw. angeklikt wurde. Ich bin recht neu im Thema JavaScript, von daher hoffe ich hier auf Hilfe.
Ich gebe mal meine vollständige Seit mit:

Code:
 <?php
   $email_to="mail@irgendwo.de";
   $email_betreff="Registrierung";
   $email_to_cc="mail2@irgendwo.de";
 ?>
 
 
 <HTML>
 <HEAD><TITLE>Register</TITLE>
 <SCRIPT language="JavaScript">
 
 	function checkdata() {
 	var check_roules = document.sendform.Roules.value; 
 	var checked = true; 
 		    
 	if (check_roules = false)) {
 	  alert("Sie müssen die Nutzungsrichtlinien anerkennen!");
 	  checked = false;
 	  } 
 	
 	if (checked) { 
 	  document.sendform.method = "POST"; 
 	  document.sendform.submit(); 
 	  } 
 	  
 	  return checked; 
 	  }
 
 </HEAD>
 
 <BODY>
 
 <P>Hier können Sie sich als neuer <strong>info-group.de - User</strong> registrieren.</P>
 <P>Für eine Registrierung ist die Anerkennung unserer <a href="?q=node/9">Nutzungsregeln</a> zwingend notwendig. Bitte lesen Sie sich diese vor der Registrierung genau durch.</P>
 <FORM name="sendform" action="" method="POST" onsubmit="return checkdata()">
   <TABLE border="1" bordercolor="black" width="430px">
   <TR>
   <TD >
 	<TABLE border="0">
 	  <TR> 
 		<TD width="300px"><strong>Kontoinformationen</strong></TD>
 	  </TR>
 	  <TR>
 		<TD width="150px">&nbsp;</TD>
 	  </TR>
 	  <TR>
 		<TD width="150p">Username:*</TD>
 	  </TR>
 	  <TR>
 		<TD><INPUT  type="text" name="Username"></TD>
 	 </TR>
 	 <TR>
 	   <TD style="font-size:10px" width="450px">*Tragen Sie hier Ihren vollen Name oder einen bevorzugte Usernamen ein. Nur Buchstaben, Zahlen und Spaces sind  erlaubt.</TD>
 	 </TR>
 	 <TR>
 	   <TD>&nbsp;</TD>
 	 </TR>
 	 <TR>
 	   <TD>Email-Adresse:*</TD>
 	 </TR>
 	 <TR>
 	   <TD><INPUT type="text" name="Email"></TD>
 	 </TR>
 	 <TR>
 	   <TD style="font-size:10px">*Ein Kennwort mit Hinweisen werden zu dieser Email-Adresse geschickt, bitte überprüfen Sie diese genau.</TD>
 	 </TR>
 	 <TR>
 	   <TD height="10px"></TD>
 	 </TR>
 	 <TR>
 	   <TD><TABLE border="0">
 		 <TR>
 	   <INPUT type="checkbox" name="Roules"></TD>
 	   <TD>Ich habe die Nutzungsrichtlinien gelesen und erkenne diese an.</TD>
 	 </TR></TABLE>
 	</TD>
 	  </TR>
 	  <TR>
 		<TD height="15px"></TD>
 	  </TR>
 	  <TR>
 		<TD><INPUT type="submit" name="submit" value="Create Account"></TD>
 	  </TR>
 	  <TR>
 		<TD height="10px"></TD>
 	  </TR>
 	</TABLE>
   </TD>
   </TR>
   </TABLE>
 
 <?php
  if(isset($_POST['submit']))
  {
   $name	= $_POST['Username'];
   $email   = $_POST['Email'];
   $check   = $_POST['Roules'];
 
   $header  = "Cc: $email_to_cc\n";
    
   $message  = "Von: $anrede $name\n";
   $message .= "Email: $email\n\n";
   $message .= "Checkbox: $check\n";
  
   mail($email_to,$email_betreff,$message,$header);
    
  }
  
 ?>
 
 </BODY>
 </HTML>

Ich habe schon einiges versucht. Z.B. check_roules = 0 oder !check_roules = true und anderes.Aber es wird entweder garnicht abgefragt. Ich hatte auch schon das problem, das ständig ein Fenster kam das besagte, dass die Checkbox angeklickt werden sollte, obwohl sie es war.

Ich hoffe, Ihr könnt mir hier helfen.
 
Hi,

um Checkboxen zu testen, musst du ihre Eigenschaft checked auf true oder false prüfen.

Ausserdem muss bei einem Test auf Gleichheit innerhalb einer if-Bedingung ein doppeltes
Gleichheitszeichen stehen.

Code:
function checkdata() {
  var check_roules = document.sendform.Roules.checked;
  var checked = true;

  if (check_roules == false) {
    alert("Sie müssen die Nutzungsrichtlinien anerkennen!");
    checked = false;
  }

  if (checked) {
    document.sendform.method = "POST";
    document.sendform.submit();
  }

  return checked;
}
Ciao
Quaese
 
Danke.

habe jetzt gesetzt:

if (check_roules == false) {
...
}

Das Dokument wird aber trotzdem übermittelt, obwohl die Checkbox nicht angeklickt war. Muss ich vielleicht das value="..." der checkbox ändern?
 
Hi,

ich kann dein Problem hier nicht nachvollziehen. Wenn ich das Script von oben verwende,
funktioniert es wie gefordert.

Das Script könntest du aber noch optimieren:
Code:
function checkdata() {
  var check_roules = document.sendform.Roules.checked;

  if (check_roules == false) {
    alert("Sie müssen die Nutzungsrichtlinien anerkennen!");
    return false;
  }

  return true;
}
Ciao
Quaese
 

Neue Beiträge

Zurück