einfache if - Abfrage (eigentlich)

quidnovi

Erfahrenes Mitglied
Hi Gemeinde,

ich generiere mit unten angefügten Code jeweils 5 Tage einer Kalenderwoche.
Hier hat der Benutzer die Möglichkeit die Arbeitsleistung des jeweiligen Tages einzutragen.

PHP:
function kwErzeugen($tag,$anzahlTage,$color,$nzMenge){
		/* aktuelles datum ermittel */
		$ak_datum = date(dmY); # zB 22042003
		$ak_tag = substr($ak_datum, 0,2);
		$ak_monat = substr($ak_datum, 2,2);
		$ak_jahr = substr($ak_datum, 4,8);

		$time = strtotime($strg);
		$anfg = $time;
		$ende = $time;
		while(date('w',$anfg) > 0){
			$anfg -= 60 * 60 * 24;
		}
		$anfg += ((60 * 60 * 24) * $tag);

		$_POST['wochentag'] = date('D', $anfg);
		switch($_POST['wochentag']){
			case Mon: $_POST['wochentag'] = "Montag"; break;
			case Tue: $_POST['wochentag'] = "Dienstag"; break;
			case Wed: $_POST['wochentag'] = "Mittwoch"; break;
			case Thu: $_POST['wochentag'] = "Donnerstag";break;
			case Fri: $_POST['wochentag'] = "Freitag"; break;
			case Sat: $_POST['wochentag'] = "Samstag"; break;
			case Sun: $_POST['wochentag'] = "Sonntag"; break;
		}

		for ($i = 1; $i <= $anzahlTage; $i++){
			$feld = "<table width='980' height='' cellspacing='0' cellpadding='0' border='1' bordercolor='#C1C1C1'>".
					"<form method='POST' action='./error.php'>".
					"<tr bgcolor='".$color."'>".
					"<td align='center' width='81'>".date('d.m.y', $anfg)."<br />".$_POST['wochentag']."</td>".
					"<td align='center' width='81'><input type='text' name='auftragsNr_".$i."' size='5'></td>".
					"<td align='center' width='123'><input type='text' name='bauvorhaben_".$i."'  size='10'></td>".
					"<td align='center' width='129'><TEXTAREA NAME='arbBericht_".$i."' ROWS='1' COLS='8'></TEXTAREA></td>".
					"<td align='center' width='81'><input type='text' name='beginn_".$i."' size='5'></td>".
					"<td align='center' width='81'><input type='text' name='ende_".$i."' size='5'></td>".
					"<td align='center' width='81'><input type='text' name='hGesamt_".$i."' size='5'></td>".
					"<td align='center' width='78'>".
					"<select name='diaeten_".$i."' size='2'>".
					"<option value=0 selected>nein</option>".
					"<option value=1>ja</option>".
					"</select>".
					"</td>".
					"<td align='center' width='81'><input type='text' name='kmAbFa_".$i."' size='5'></td>".
					"<td align='right'>".
					"<input type='radio' name='zaUrKrAr_".$i."' value='za_".$i."'>".
					"<img src='./images/spacer.gif' width='15' border='0'>".
					"<input type='radio' name='zaUrKrAr_".$i."' value='urlaub_".$i."'>".
					"<img src='./images/spacer.gif' width='22' border='0'>".
					"<input type='radio' name='zaUrKrAr_".$i."' value='krank_".$i."'>".
					"<img src='./images/spacer.gif' width='15' border='0'>".
					"<input type='radio' name='zaUrKrAr_".$i."' value='arzt_".$i."'>".
					"<img src='./images/spacer.gif' width='6' border='0'>".
					"</td></tr></form></table>";
					echo $feld;
		}
//--------------------------------------------------------------------------------------------------------------------------------------------------//

		// Anlegen neue Zeile(n);
		echo "<table width='' height='' cellpadding='0' cellspacing='0' border='0'>".
			 "<form action=".$_SERVER[PHP_SELF]." method='POST'>".
			 "<tr>".
			 "<td>".
			 "<select name='neueZeile'>";
	         for($z = 0; $z <= $nzMenge; $z++){
	         	if ($z == 0){
	         		echo "<option value=".$z.">zur&uuml;cksetzen</option>";
	         	}
	         	else if($z == 1){
	         		echo "<option value=".$z.">".$z." neue Zeilen einf&uuml;gen</option>";
	         	}
	         	else{
	         		echo "<option value=".$z.">".$z." neue Zeile einf&uuml;gen</option>";
	         	}
	         }
	    	 echo "</select>".
	    	     "<input type = 'submit' value='Anzahl ausw&auml;hlen'>".
	    	     "</td>".
	    	     "</tr>".
	    	     "</form>".
	    	     "</table>";


	    	 // Anzeige input Felder
	    	 if($_POST['neueZeile'] && $_POST['wochentag'] == 'Montag'){
	    	 	for($i = 1; $i <= $_POST['neueZeile']; $i++){
	    	 		$z = $_POST['wochentag'].(5+$i);
	    	 		$feld = "<table width='980' height='' cellspacing='0' cellpadding='0' border='1' bordercolor='#C1C1C1'>".
	    	 		"<form method='POST' action='./error.php'>".
	    	 		"<tr bgcolor='".$color."'>".
	    	 		"<td align='center' width='81'>".date('d.m.y', $anfg)."<br />".$_POST['wochentag']."</td>".
	    	 		"<td align='center' width='81'><input type='text' name='auftragsNr_".$z."' size='5'></td>".
	    	 		"<td align='center' width='123'><input type='text' name='bauvorhaben_".$z."'  size='10'></td>".
	    	 		"<td align='center' width='129'><TEXTAREA NAME='arbBericht_".$z."' ROWS='1' COLS='8'></TEXTAREA></td>".
	    	 		"<td align='center' width='81'><input type='text' name='beginn_".$z."' size='5'></td>".
	    	 		"<td align='center' width='81'><input type='text' name='ende_".$z."' size='5'></td>".
	    	 		"<td align='center' width='81'><input type='text' name='hGesamt_".$z."' size='5'></td>".
	    	 		"<td align='center' width='78'>".
	    	 		"<select name='diaeten_".$z."' size='2'>".
	    	 		"<option value=0 selected>nein</option>".
	    	 		"<option value=1>ja</option>".
	    	 		"</select>".
	    	 		"</td>".
	    	 		"<td align='center' width='81'><input type='text' name='kmAbFa_".$z."' size='5'></td>".
	    	 		"<td align='right'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='za_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='15' border='0'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='urlaub_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='22' border='0'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='krank_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='15' border='0'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='arzt_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='6' border='0'>".
	    	 		"</td>".
	    	 		"</tr>".
	    	 		"</form>".
	    	 		"</table>";
	    	 		echo $feld;
	    	 	}
	    	 }
	    	 else if($_POST['neueZeile'] && $_POST['wochentag'] == 'Dienstag'){
	    	 	for($i = 1; $i <= $_POST['neueZeile']; $i++){
	    	 		$z = $_POST['wochentag'].(5+$i);
	    	 		$feld = "<table width='980' height='' cellspacing='0' cellpadding='0' border='1' bordercolor='#C1C1C1'>".
	    	 		"<form method='POST' action='./error.php'>".
	    	 		"<tr bgcolor='".$color."'>".
	    	 		"<td align='center' width='81'>".date('d.m.y', $anfg)."<br />".$_POST['wochentag']."</td>".
	    	 		"<td align='center' width='81'><input type='text' name='auftragsNr_".$z."' size='5'></td>".
	    	 		"<td align='center' width='123'><input type='text' name='bauvorhaben_".$z."'  size='10'></td>".
	    	 		"<td align='center' width='129'><TEXTAREA NAME='arbBericht_".$z."' ROWS='1' COLS='8'></TEXTAREA></td>".
	    	 		"<td align='center' width='81'><input type='text' name='beginn_".$z."' size='5'></td>".
	    	 		"<td align='center' width='81'><input type='text' name='ende_".$z."' size='5'></td>".
	    	 		"<td align='center' width='81'><input type='text' name='hGesamt_".$z."' size='5'></td>".
	    	 		"<td align='center' width='78'>".
	    	 		"<select name='diaeten_".$z."' size='2'>".
	    	 		"<option value=0 selected>nein</option>".
	    	 		"<option value=1>ja</option>".
	    	 		"</select>".
	    	 		"</td>".
	    	 		"<td align='center' width='81'><input type='text' name='kmAbFa_".$z."' size='5'></td>".
	    	 		"<td align='right'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='za_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='15' border='0'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='urlaub_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='22' border='0'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='krank_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='15' border='0'>".
	    	 		"<input type='radio' name='zaUrKrAr_".$z."' value='arzt_".$z."'>".
	    	 		"<img src='./images/spacer.gif' width='6' border='0'>".
	    	 		"</td>".
	    	 		"</tr>".
	    	 		"</form>".
	    	 		"</table>";
	    	 		echo $feld;
	    	 	}
	    	 }
	    	 // und so weiter bis Sonntag //

	    	 echo "<table width='980' height='' cellspacing='0' cellpadding='0' border='0'>".
	    	 "<tr>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "<td height='2' bgcolor='black'></td>".
	    	 "</tr>".
	    	 "</table>";
	}

Aufruf des Ganzen:
PHP:
// M O N T A G
			    kwErzeugen($tag=1,$anzahlTage=5,$color='#DDDDDD',$nzMenge=10);

//-----------------------------------------------------------------------------------------------------------------------------------------------
				// D I E N S T A G
			    kwErzeugen($tag=2,$anzahlTage=5,$color="#FFCE9D",$nzMenge=10);

//-----------------------------------------------------------------------------------------------------------------------------------------------
				// M I T T W O C H
			    kwErzeugen($tag=3,$anzahlTage=5,$color='#DDDDDD',$nzMenge=10);

//-----------------------------------------------------------------------------------------------------------------------------------------------
				// D O N N E R S T A G
			    kwErzeugen($tag=4,$anzahlTage=5,$color='FFCE9D',$nzMenge=10);

//-----------------------------------------------------------------------------------------------------------------------------------------------
				// F R E I T A G
			    kwErzeugen($tag=5,$anzahlTage=5,$color='#DDDDDD',$nzMenge=10);
//-----------------------------------------------------------------------------------------------------------------------------------------------
				// S A M S T A G
			    kwErzeugen($tag=6,$anzahlTage=2,$color='#FFDDDD',$nzMenge=2);

//-----------------------------------------------------------------------------------------------------------------------------------------------
				// S O N N T A G
				kwErzeugen($tag=7,$anzahlTage=2,$color='#FFB7B7',$nzMenge=2);

Will nun der User z.B.: am Montag 1 zusätzliches Feld hinzufügen (die Menge wählt man aus dem Dropdown-Feld), generiert das Script bei jedem Tag ein solches Feld.
Obwohl das eigentlich nicht sein darf, denn der Code sieht folgendermaßen aus:
PHP:
if($_POST['neueZeile'] && $_POST['wochentag'] == 'Montag'){
...

Ich finde beim besten Willen den Fehler nicht, daher bitte ich um Eure Hilfe. Danke
 
Also wenn ich mir deine 'neueZeile' so betrachte kann diese nie den Wert Montag erreichen, das du die Werte '<option value=".$z.">' durchnummerierst. Und deswegen trifft deine If Abfrage nicht zu.
 
In der Var ($_POST['wochentag'] ) wäre der richtige Tag schon gespeichert.
Leider verstehe ich nicht, warum die if-Abfrage den Wert nicht nimmt.

Habe jetzt mehrere Varianten durchprobiert, komme leider nicht auf das gewünschte Ergebnis.

Könnte mir bitte jemand den richtigen Weg weisen? Habe leider keine Ideen mehr. Danke
 
Da scheinen 2 Fehler drin zu sein: Im Formular um neue Zeilen anzuzeigen wird der Wochentag, für den eine neue Zeile erzeugt werden soll, nicht übergeben, daher kann das Script überhaupt nicht wissen, wo es neue Zeilen anzeigen soll.

Trotzdem werden überall neue Zeilen angezeigt, weil du die Funktion kwErzeugen für jeden Wochentag aufrufst. Das führt dazu, dass es bei jedem Funktionsaufruf eine passende if-Abfrage gibt, die die neuen Zeilen anzeigt. (Beim 1. Aufruf ist $_POST['wochentag'] = Montag, also passt die 1. Abfrage. Beim 2. Aufruf ist es Dienstag, also passt die 2. Abfrage...)

Das ganze wirkt sehr verwirrend, weil die Variable $_POST['wochentag'] erst im Script erzeugt wird und nicht durch das Formular, vielleicht solltest du dir das als erstes abgewöhnen ;)
 
Zurück