Checkbox Fehler

smyle

Erfahrenes Mitglied
Hi

Ich habe ein Problem mit meinen Checkboxen.
Und zwar ist es sehr seltsam, denn den selben Code verwende ich mehrmals. In zwei PHP-Dateien funktioniert er und und den anderen drei Dateien funktioniert er nicht mehr.

Und zwar überpüfe ich mit diesem Code ob eine Checkbox angewählt wurde oder nicht:

Felerhafter Code:
PHP:
		 echo"  	  <tr>
					   <td>
						<input name='checkbox$ID' type='checkbox' value='$id'>
					   </td>
					   <td>
						<input name='bms$ID' type='text' value='$faecher' style='width:875px;'>
					   </td>
					  </tr>";
PHP:
while($row=mysql_fetch_object($query))
 {
  $faecher = $row->$feld1;
  $ID = $row->ID;
  
  $checkbox = $_POST["checkbox$ID"];
  $fach2 = $_POST["$feldname$ID"];	  

  if($faecher != $fach2)
  {
	 if(isset($_POST['speichern']))
	  {
		  if($checkbox != "")
		   {
		   $sql="DELETE FROM `".$tabelle."`  WHERE `ID` = $ID";
		   mysql_query($sql);
		   
			$sql = "UPDATE `".$tabelle."`  SET `".$feld1."` ='".$fach2."', `".$feld2."` = '".$user."' WHERE `ID` = '".$ID."';";
			mysql_query($sql);	
			
		   echo "<meta http-equiv='refresh' content='0; url=$seite?page=del/save'>";
		   }
		  else
		   {
			$sql = "UPDATE `".$tabelle."`  SET `".$feld1."` ='".$fach2."', `".$feld2."` = '".$user."' WHERE `ID` = '".$ID."';";
			mysql_query($sql);	
			
			echo "<meta http-equiv='refresh' content='0; url=$seite?page=save'>";
		   } 
		}   
	}
  else
    {
	  if($checkbox != "")
	   {
	   $sql="DELETE FROM `".$tabelle."` WHERE `ID` = '$ID';";
	   mysql_query($sql);
	   }
	  else
	   {
		if(!isset($_POST['save']))
		 {
		  echo "<meta http-equiv='refresh' content='0; url=$seite?page=nodelnosave'>";
		 }
	   } 	   	
     } 
   
	if(isset($_POST['leoschen']))
	{		  
		  if($checkbox != "")
		   {
		   $sql="DELETE FROM `".$tabelle."`  WHERE `ID` = $ID";
		   mysql_query($sql);
		   
		   echo "<meta http-equiv='refresh' content='0; url=$seite?page=del'>";
		   }
		  else
		   { 
			echo "<meta http-equiv='refresh' content='0; url=$seite?page=nodel'>";
		   }     
	}	  
   
   
 }
Funktionisfähiger Code:
PHP:
		 echo"  	  <tr>
					   <td>
						<input name='checkbox$ID' type='checkbox' value='$id'>
					   </td>
					   <td>
						<input name='schulfach$ID' type='text' value='$schulfach' style='width:875px;'>
					   </td>
					  </tr>";
PHP:
while($row=mysql_fetch_object($query))
 {
  $fach = $row->$feld1;
  $ID = $row->ID;
  
  $checkbox = $_POST["checkbox$ID"];
  $fach2 = $_POST["$feldname$ID"];
  
	 if($fach != $fach2)
	  {
	   	 if(isset($_POST['speichern']))
	  	  {
			  if($checkbox != "")
			   {
			   $sql="DELETE FROM `".$tabelle."`  WHERE `ID` = $ID";
			   mysql_query($sql);
			   
			   	$sql = "UPDATE `".$tabelle."`  SET `".$feld1."` ='".$fach2."', `".$feld4."` = '".$user."' WHERE `ID` = '".$ID."';";
				mysql_query($sql);	
				
			   echo "<meta http-equiv='refresh' content='0; url=$seite?page=del/save&sem=$sem&box=$id'>";
			   }
			  else
			   {
				$sql = "UPDATE `".$tabelle."`  SET `".$feld1."` ='".$fach2."', `".$feld4."` = '".$user."' WHERE `ID` = '".$ID."';";
				mysql_query($sql);	
				
				echo "<meta http-equiv='refresh' content='0; url=$seite?page=save&sem=$sem&box=$id'>";
			   } 
	  	  } 
	  }  
	 else
	  {
		  if($checkbox != "")
		   {
		   $sql="DELETE FROM `".$tabelle."` WHERE `ID` = '$ID';";
		   mysql_query($sql);
		   }
		  else
		   {
			if(!isset($_POST['save']))
			 {
			  echo "<meta http-equiv='refresh' content='0; url=$seite?page=nodelnosave&sem=$sem&box=$id'>";
			 }
		   } 	   	
	   	 
	  }
 
	if(isset($_POST['leoschen']))
	{		  
		  if($checkbox != "")
		   {
		   $sql="DELETE FROM `".$tabelle."`  WHERE `ID` = $ID";
		   mysql_query($sql);
		   
		   echo "<meta http-equiv='refresh' content='0; url=$seite?page=del&sem=$sem&box=$id'>";
		   }
		  else
		   { 
			echo "<meta http-equiv='refresh' content='0; url=$seite?page=nodel&sem=$sem&box=$id'>";
		   }     
	}	  
  }

Da es eigentlich genau das selbe ist, sollte es doch gehen. oder nicht? :(

Weis oder sieht jemand an was es liegen kann :(

Gruss
Smyle
 
Hi

ich würde auf jeden Fall mal das Formular ändern, da Variablen eigentlich nicht in einfachen Anführungszeichen stehen sollten:

PHP:
?>
<!-- man kann auch in if-Bedingungen/Schleifen wunderbar einfach so HTML-Code schreiben
<tr>
  <td>
    <input name="checkbox<? echo $ID; ?>" type="checkbox" value="<? echo $id; ?>" />
  </td>
  <td>
    <input name='bms<? echo $ID; ?> type='text' value='<? echo $faecher; ?>' style='width:875px;'>
  </td>
</tr>
<?php
 
Hi

gib doch einfach mal ein
PHP:
var_dump($_POST);
aus. Dann siehst du welche Felder alle in dem Array stehen.
 
Zurück