Form + Sessions

M-P

Mitglied
Mein Problem ist, dass wenn nur eine Zeile vorhanden ist (Ausgangszustand), dann muss ich 2 Mal auf Hinzufügen klicken bevor die nächste Zeile erscheint.
Ab dann geht es mit einem einzigen Klick.
PHP:
<?php
session_start ();

if($_SESSION['nudelnnummer']=="" OR $_SESSION['nudelnnummer']==0)
{
	$_SESSION['nudelnnummer']=1;
}
if($_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl']==0 OR $_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl']=="")
{
	$_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl']=1;	
}

$anzahl=$_SESSION['nudelnnummer'];

while($anzahl>0)
{
	echo'
	
	<form action="" method="post">
	
	<table width="100%" class="pizzentable" cellpadding="5" onclick="blubb();" cellspacing="0">
	  <tr>
		<td width="2%"><input onclick="blah(event);"  name="anzahl" type="text" style="font-family: Verdana; font-size: 24px" value="'.$_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl'].'" size="2" maxlength="3"  /></td>
		<td width="4%"><select name="groesse" size="2">
		  <option onclick="blah(event);" value="1" selected="selected">Klein</option>
		  <option onclick="blah(event);" value="2">Groß</option>
		</select></td>
		<td width="66%">&nbsp;</td>
		<td width="14%">&nbsp;</td>
		<td width="14%">&nbsp;</td>
	  </tr>
	</table>';
	
	$anzahl=$anzahl-1;
}

	echo'
	<input type="submit" name="submit" value="nudeln hinzufügen">
	
	</form>
	';
	
if($_POST['submit'])
{
	$_SESSION['nudelnnummer']=$_SESSION['nudelnnummer']+1;
	
}



?>
 
Zuletzt bearbeitet:
Also bei den ganzen Nudeln bekommt man ja Hunger ! ! !

Kann es sein das es daran liegt das du nur auf Zustand "" und "0" prüfst aber nicht mit ISSET prüfst ob die Variable(n) überhaupt gesetzt ist

Mach doch mal:

PHP:
if($_SESSION['nudelnnummer']=="" OR $_SESSION['nudelnnummer']==0 OR !ISSET($_SESSION['nudelnnummer']))

daraus und versuch es dann nochmal.

Gruß Thomas
 
Sorry hab mir deinen Quellcode nicht richtig durchgelesen, der Fehler liegt wo anders.

PHP:
<?php
session_start();

if(isset($_POST['submit']))
{
    $_SESSION['nudelnnummer'] = $_SESSION['nudelnnummer'] + 1;
}

if($_SESSION['nudelnnummer'] == "" OR $_SESSION['nudelnnummer'] == 0 OR !isset($_SESSION['nudelnnummer']))
{
    $_SESSION['nudelnnummer'] = 1;
}

if($_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl'] == 0 OR $_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl'] == "")
{
    $_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl'] = 1;
}

$anzahl = $_SESSION['nudelnnummer'];

	echo '<form action="a.php" method="post">';

while($anzahl > 0)
{
    echo'

    <table width="100%" class="pizzentable" cellpadding="5" onclick="blubb();" cellspacing="0" border="1">
      <tr>
        <td width="2%"><input onclick="blah(event);"  name="anzahl" type="text" style="font-family: Verdana; font-size: 24px" value="'.$_SESSION['nudeln'.$_SESSION['nudelnnummer'].'_anzahl'].'" size="2" maxlength="3"  /></td>
        <td width="4%"><select name="groesse" size="2">
          <option onclick="blah(event);" value="1" selected="selected">Klein</option>
          <option onclick="blah(event);" value="2">Groß</option>
        </select></td>
        <td width="66%">&nbsp;</td>
        <td width="14%">&nbsp;</td>
        <td width="14%">&nbsp;</td>
      </tr>
    </table>';

    $anzahl = $anzahl - 1;
}

    echo'
    <input type="submit" name="submit" value="nudeln hinzufügen">

	</form>
    ';
?>

Bei dir wird erst die Schleife durchlaufen und dann überprüft ob das Formular abgeschickt wurde.
Außerdem war das FORM-Tag innerhalb der Schleife gestanden wo es nicht hingehört.

Gruß Thomas
 
Zurück