Hallo,
ich habe eine Site mit einem Formular in Tabellenform. Hier gibt es 4 Spalten, eine davon beinhaltet eine einfach-Selectauswahl. Die beiden anderen sind Input-Text-Felder.
Wenn ich das in ein Formular schreibe, kann ich die Daten via get oder Post wunderbar übergeben. Jetzt kommt das Problem:
Ich will einen Button, damit der User das Formular immer um eine weitere Zeile ergänzen kann. Den Teil habe ich mit Java realisiert. Problem ist jetzt aber, dass bei Buttonbetätigung die Daten nicht nach $_POST geschrieben werden. Es wird also eine Zeile hinzugefügt, aber die anderen Zeilen sind leer. Und wenn der User jedes mal nach der Erweiterung um eine Zeile die Tabelle komplett neu ausfüllen soll, dann wird der bei mehr als 2 Zeilen sicher nicht so angetan davon sein. Die Datenweitergabe an die nächste Seite sollte wollte ich über get lösen, denn da wird der gesamte Formularinhalt übergeben. Hier mal das, was ich probiert habe...
Das ist natürlich nur ein Auszug 
Wenn ich die Daten mit POST weitergeben will, steht in Post(natürlich) immer nur die letzte Zeile, wenn ich die Daten über die Session und einen Button mit Javascript übergebe, dann fehlt die letzte Zeile, da das ja nicht mehr nach Post geschrieben wird.
Hat vielleicht einer eine gute Idee ???
ich habe eine Site mit einem Formular in Tabellenform. Hier gibt es 4 Spalten, eine davon beinhaltet eine einfach-Selectauswahl. Die beiden anderen sind Input-Text-Felder.
Wenn ich das in ein Formular schreibe, kann ich die Daten via get oder Post wunderbar übergeben. Jetzt kommt das Problem:
Ich will einen Button, damit der User das Formular immer um eine weitere Zeile ergänzen kann. Den Teil habe ich mit Java realisiert. Problem ist jetzt aber, dass bei Buttonbetätigung die Daten nicht nach $_POST geschrieben werden. Es wird also eine Zeile hinzugefügt, aber die anderen Zeilen sind leer. Und wenn der User jedes mal nach der Erweiterung um eine Zeile die Tabelle komplett neu ausfüllen soll, dann wird der bei mehr als 2 Zeilen sicher nicht so angetan davon sein. Die Datenweitergabe an die nächste Seite sollte wollte ich über get lösen, denn da wird der gesamte Formularinhalt übergeben. Hier mal das, was ich probiert habe...
PHP-Code:
<?php
$_SESSION['anzahl'.$_SESSION['zeilenzahl']]=$_POST['anzahl'];
$_SESSION['bez'.$_SESSION['zeilenzahl']]=$_POST['bez'];
$_SESSION['preis'.$_SESSION['zeilenzahl']]=$_POST['preis'];
$_SESSION['waer'.$_SESSION['zeilenzahl']]=$_POST['waer'];
if (isset ($_GET['aktion']))
{
if($_GET['aktion']=='zeile')
{
if (isset($_SESSION['zeilenzahl']))
{
if($_POST['submit']=='submit');
{
$_SESSION['anzahl'.$_SESSION['zeilenzahl']]=$_POST['anzahl'];
$_SESSION['bez'.$_SESSION['zeilenzahl']]=$_POST['bez'];
$_SESSION['preis'.$_SESSION['zeilenzahl']]=$_POST['preis'];
$_SESSION['waer'.$_SESSION['zeilenzahl']]=$_POST['waer'];
$_SESSION['zeilenzahl']++;
}
}
}
}
else
{
$_SESSION['zeilenzahl']=1;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Protokoll</title>
</head>
<body>
<h1>Material liste</h1>
<form method="get" action="add_sur_pruef.php3">
<div class="tabelle">
<table border="0em" cellpadding="0" cellspacing="0" width="20" >
<tr>
<th>Anzahl</th>
<th>Bezeichnung</th>
<th>Preis/Stück</th>
<th>Währung</th>
</tr>
<?PHP
function DropDown_waer ($waehrung)
{
$selected=$waehrung=="USD"?" selected=\"selected\"":"";
echo '<select name="waer" size="1">';
echo "\n\t<option>EUR</option>";
echo "\n\t<option".$selected.">USD</option>\n</select>\n";
}
for($i=1;$i<=$_SESSION['zeilenzahl'];$i++)
{
echo'<tr>
<td>
<input type="text" name="anzahl'.$i.'" id="anzahl'.$i.'"
value="'.$_SESSION['anzahl'.$i].'"/>
</td>';
echo' <td>
<input type="text" name="bez'.$i.'" id="bez'.$i.'"
value="'.$_SESSION['bez'.$i].'"/>
</td>';
echo' <td>
<input type="text" name="preis'.$i.'" id="preis'.$i.'"
value="'.$_SESSION['preis'.$i].'"/></td>';
echo' <td>';
$waehrung=$_SESSION['waer'.$i];DropDown_waer ($waehrung);
'</td>
</tr>';
}
?>
</table>
<input type="button" value="Zeile hinzufügen" id="Eintragen_in_Protokoll"
onClick="javascript:location.href = 'add_parts.php3?aktion=zeile'"/>
<input type="submit" name="submit" value="weiter" id="button" />
<input type="button" value="Abbrechen" onClick="javascript:location.href = 'index.php3'"/>
</form>
</body>
</html>
Wenn ich die Daten mit POST weitergeben will, steht in Post(natürlich) immer nur die letzte Zeile, wenn ich die Daten über die Session und einen Button mit Javascript übergebe, dann fehlt die letzte Zeile, da das ja nicht mehr nach Post geschrieben wird.
Hat vielleicht einer eine gute Idee ???

Kommentar