Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Falsche Übergabe der Variablen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Falsche Übergabe der Variablen


 
Devil-Inside
06-04-2006, 15:41 
 
Hallo!

Habe folgendes Problem:
Ich lasse Daten aus einer Datenbank in eine Tabelle auslesen.
In der Tabelle ist noch ein Input-Feld, damit ich noch das Datum eingeben kann (Also handelt sich hier um ein Formular).

Danach will ich das Formular mit senden abschicken und er soll mir eine neue Tabelle anzeigen, mit den vorherigen Daten aus der Datenbank und mit dem Datum, das ich per Input-Feld eingegeben habe.

Der Code:

...
for($i=0;$i<count($ergebnis);$i++)
{
echo '<form name="rechnung" action="rechnung.php?kunde='.$ergebnis[$i][kunde].'
&von='.$von1.'&bis='.$bis1.'" METHOD=POST>';
echo "<table border=1>";
echo '<tr><td width=150> '.$ergebnis[$i][kunde].'</td>
<td width=100><INPUT TYPE=TEXT NAME=datum VALUE="" SIZE=15 MAXLENGTH=20></td>
<td width=30><input type=submit name="erstellen" value="erstellen"></td></tr> ';
echo "</table>";
}
...


Leider übermittelt er nur den ersten Kunden

rechnung.php?kunde=2152&von=10.03.2003&bis=22.03.2006
Wie kommt das? Weiß einer eine Lösung?
Versteht ihr wie ich das meine?

Im HTML-Code habe ich den Code richtig.

<FORM NAME="rechnung" ACTION="rechnung.php?kunde=2152&von=10.03.2003&bis=22.03.2006"
METHOD=POST>
<table border=1><tr><td width=150> 2152</td>
<td width=100><INPUT TYPE=TEXT NAME=datum VALUE="06.04.2006" </td>
<td width=30><INPUT TYPE=SUBMIT NAME="suchen" VALUE="erstellen"></td></tr> </table>
<FORM NAME="rechnung" ACTION="rechnung.php?kunde=1542&von=10.03.2003&bis=22.03.2006"
METHOD=POST>
<table border=1><tr><td width=150> Conso.de</td>
<td width=100><INPUT TYPE=TEXT NAME=datum VALUE="06.04.2006"></td>
<td width=30>
<INPUT TYPE=SUBMIT NAME="suchen" VALUE="erstellen"></td></tr> </table>
usw.

Da sieht man, dass jede Abfrage eine Tabelle für sich ist, und dass hinter jedem rechnung?kunde=... die richtigen Daten stehen.

 
wahsaga
06-04-2006, 15:45 
 
Original geschrieben von Devil-Inside
Im HTML-Code habe ich den Code richtig.
Nein, das hast du höchstvermutlich nicht.

Du hast mehrere Formulare erstellt - wenn du eins davon abschickst, werden logischerweise auch nur dessen Daten übertragen.

Was du vermutlich haben willst, ist ein Formular, welches Eingabefelder für mehrere Kundendatensätze auf einmal enthält.

 
Daniela
06-04-2006, 15:47 
 
Versteht ihr wie ich das meine? also ich kann dir nicht ganz folgen :dontknow:

 
komikaa
06-04-2006, 15:50 
 
also andere würden jetzt schreiben: grundlagen!
udn sie hätten recht!

wenn du auf submit klickst übertragst du nur den inhalt einer form und nicht aller.
du solltest alle daten in eine form machen und die daten über post übertragen

 
MarkusW
06-04-2006, 15:51 
 
machs einfach so:


<form action="dieseite.php" method="post">
<!-- schleife -->
<table>
<tr>
<td>datum</td>
<td><input type="text" name="datum[]" /></td>
</tr>
...
</table>
<!-- ende schleife -->
</form>


dieseite.php:

$_POST['datum'][0] => erstes datum
$_POST['datum'][1] => zweites datum
...

 
Devil-Inside
06-04-2006, 16:05 
 
Eben nicht.
Es wird eine Abfrage erstellt die z.B. aus 10Tabellen besteht.
Und jede Tabelle ist ein Formular für sich.

So ungefähr:
Kunde=1000 datum=06.04.2006 senden
Kunde=1001 datum=06.04.2006 senden
Kunde=1002 datum=06.04.2006 senden
Kunde=1003 datum=06.04.2006 senden
Kunde=1004 datum=06.04.2006 senden

Das heißt, dass jede Zeile eine Tabelle ist und gleichzeitig ein Formular.
Wenn ich auf "senden" bei dem Kunden "1002" klicke, dann sollen Daten aus der vorherigen Abfrage und das Datum auf die neue Seite "rechnung.php" übermittelt werden.


Du hast mehrere Formulare erstellt - wenn du eins davon abschickst, werden logischerweise auch nur dessen Daten übertragen.
Ja, genau das will ich! Aber es klappt nicht. Er schickt nur die Daten aus der ersten Tabelle (Zeile) weg.
Das heißt, egal was ich sende, der Anhang sieht immer so aus:
rechnung?kunde=1000&datum=
auch wenn ich auf Kunde 1001 oder 1002 klicke.

 
Daniela
06-04-2006, 16:09 
 
ahh, sag doch gleich was du willst... sind ja hier nicht aufm jahrmarkt :D

Dein Problem liegt höchstwahrscheinlich in der gleichen Benennung aller Form tags. ( <form name="rechnung"... )

Wie sie heißen ist egal, sie sollten nur unterschiedlich benannt werden.
Häng z.b. einfach nur die KundenID hinten dran.


LG, Dani

 
wahsaga
06-04-2006, 16:21 
 
Original geschrieben von Devil-Inside
Ja, genau das will ich! Aber es klappt nicht. Er schickt nur die Daten aus der ersten Tabelle (Zeile) weg.
Vielleicht wäre es ganz clever, wenn du die Formulare auch mal wieder schließt ...?


Derzeit hast du nämlich, Korrektur der vorherigen Aussage, nicht mehrere Formulare untereinander, sondern mehrere ineinander - was natürlich vollkommener Unfug ist.

 
Devil-Inside
06-04-2006, 16:25 
 
JA! Das ist es!
Danke.
Vor lauter Bäumen sieht man den Wald nicht mehr.
Ich sollte nach 8Stunden mal Pause machen.
Das mach ich jetzt auch.

 
Daniela
06-04-2006, 16:48 
 
ich mach auch immer alle 5 min ne halbe Stunde pause *gg*

jo oft liegts an so simplen sachen ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:22 Uhr.