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)
problem mit dynamisch generiertem Formular [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
problem mit dynamisch generiertem Formular


 
susto
18-02-2004, 21:06 
 
Hallo an Alle,

ich hab seit geraumer zeit ein problem mit einem formular, das ich dynamisch aus MySQL-DB-Einträgen generiere -
und finde keine lösung!!

hier das problem: ein notdienstkalender soll über formulare editiert werden können.

zur anzeige der db-einträge habe ich erst eine monatsauswahl vorgeschaltet. wähle ich z.B: März aus, wird mittels eines php-skripts
ein formular erzeugt, daß soviele inputfelder enthält wie gefundene Datensätze.

PROBLEM 1: Die Namen der Inputfelder haben immer den gleichen Namen, deshalb wird nur der wert des letzten feldes übergeben.
Wenn ich jedoch die Inputfeldnamen über einen Zähler durchzähle (z.B: ID_1, ID_2,...) dann hab ich das problem, daß die variablennamen nicht mehr mit den datenbankfeldnamen übereinstimmen bzw. weiß nicht wie ich die übergebenen werte in einen array packen, um dann wieder die datenbank zu aktualisieren.


Hier der CODE zum Erzeugen des Formulars:


$sql = " SELECT ID, datum, apoID1, apoID2, MONTH(datum) AS monat, DAYofMONTH(datum) AS tag, YEAR(datum) as jahr ";
$sql .= "FROM $table ";
$sql .= "WHERE MONTH(datum) = '$monatSelect' ";
$sql .= "ORDER BY datum ";

$rs = mysql_query($sql, $cid);
if (mysql_error()) { print "Database Error: $sql " . mysql_error(); }

print "<form action=\"manage_edit2.php\" method=\"post\">\n";
print "<input type=\"hidden\" name=\"step\" value='1'>\n";

$anzahl = mysql_num_rows($rs);
$row = mysql_fetch_array($rs);
for ($i=1; $i<=$anzahl; $i++)
{
$ID = $row["ID"];
$datum = $row["datum"];
$tag = $row["tag"];
$monat = $row["monat"];
$jahr = $row["jahr"];
$apoID1 = $row["apoID1"];
$apoID2 = $row["apoID2"];

print "<input type=\"hidden\" name='ID' value='$ID'>\n";
print "<input type=\"hidden\" name='tag' value='$tag'>\n";
print "<input type=\"hidden\" name='monat' value='$monat'>\n";
print "<input type=\"hidden\" name='datum' value='$datum'>\n";
print "$tag.$monat. <input type=\"text\" size=\"8\" name='jahr_$i' value='$jahr' size=\"6\">\n";
print "<input type=\"text\" size=\"8\" name='apoID1' value='$apoID1'>\n";
print "<input type=\"text\" size=\"8\" name='apoID2' value='$apoID2'>\n";
}
print "input type=\"submit\" value=\"speichern\"></td>";
print "</form>\n";

Wär echt super, wenn mir jemand auf die sprünge helfen könnte :-)))

danke schon mal.
UND: einen extra lieben gruss an meinen freundlichen lehrer :teach: ;-))

 
Wurzel
18-02-2004, 21:14 
 
vielleicht erklärst du auch noch das problem ... wäre echt toll.

 
asp2php
18-02-2004, 21:29 
 
den richtigen Ansatz hast du schon, doch dann wieder verworfen. Denk noch mal drüber nach. Es sind nur Bezeichnungen im $_POST-Array hat nicht direkt mit den Spaltennamen in der DB zu tun, sondern steht nur in Beziehung zu der DB, was die zugehörige Werte angeht, na dann ...

 
Abraxax
18-02-2004, 21:41 
 
Original geschrieben von susto
HELP ME !!!!!sowas kannst du dir sparen. :teach:

hier wirst du immer geholfen. denn dafür bist du ja hier. oder? ,-)


noch was... wir haben hier auch so [php ]-tags, welche du mal um deinen php-code machen darfst. da gibt es auch so einen button, da steht PHP drauf. bunt und fett hast du ja schon gefunden.

also bitte änder deinen post. das roteinfärben des codes bringt nämlich rein gar nichts.

 
susto
18-02-2004, 22:02 
 
Original geschrieben von asp2php
den richtigen Ansatz hast du schon, doch dann wieder verworfen. Denk noch mal drüber nach. Es sind nur Bezeichnungen im $_POST-Array hat nicht direkt mit den Spaltennamen in der DB zu tun, sondern steht nur in Beziehung zu der DB, was die zugehörige Werte angeht, na dann ...


ok. soweit verstanden. ;-)
noch eine kleine frage:
Wenn ich die inputfeldnamen mit $i durchzähle, wie lese ich die werte aller variablen mit dem $_POST-Array wieder aus (z.B: ID_1, ID_2), um dann mehrere Datensätze gleichzeitig zu aktualisieren?

... es ist ein langer weg zu einem dynamischen notdienstkalender...

 
Abraxax
18-02-2004, 22:08 
 
@susto Original geschrieben von Abraxax
noch was... wir haben hier auch so [php ]-tags, welche du mal um deinen php-code machen darfst. da gibt es auch so einen button, da steht PHP drauf. bunt und fett hast du ja schon gefunden.

also bitte änder deinen post. das roteinfärben des codes bringt nämlich rein gar nichts.

 
susto
18-02-2004, 22:17 
 
Original geschrieben von Abraxax
@susto

was willst du mir damit sagen??? bin nicht so gut in zeichensprache.

 
asp2php
18-02-2004, 23:59 
 
Original geschrieben von susto
ok. soweit verstanden. ;-)
noch eine kleine frage:
Wenn ich die inputfeldnamen mit $i durchzähle, wie lese ich die werte aller variablen mit dem $_POST-Array wieder aus (z.B: ID_1, ID_2), um dann mehrere Datensätze gleichzeitig zu aktualisieren?

... es ist ein langer weg zu einem dynamischen notdienstkalender...

erstmal muss du im Formular ein hidden-Feld (fieldcount) hinzufügen, welche die Anzahl der $i beinhaltet.

Auf der Empfängerseite liest du sie aus ($intFieldCount=$_POST['fieldcount']),
jagst eine For-Schleife (for ($i=0;...) ) damit durch, in der Schleife liest du z.B. $_POST["ID$i"] aus,
ordnest den ausgelesenen Werten den entsprechenden DB-Feldern zu und führst das Update durch. Voilà.

 
asp2php
19-02-2004, 00:04 
 
Original geschrieben von susto
was willst du mir damit sagen??? bin nicht so gut in zeichensprache.

geh mal zu deinem Posting von vorhin, klick auf ändern,
füge php in [] vor den roten Codezeilen und ein /php in []
am Ende der Codezeilen ein, das ganze wieder senden,
schau dir das Ergebnis an und wirst schon verstehen, was er meint :D

 
susto
19-02-2004, 11:59 
 
Original geschrieben von susto
ok. soweit verstanden. ;-)
noch eine kleine frage:
Wenn ich die inputfeldnamen mit $i durchzähle, wie lese ich die werte aller variablen mit dem $_POST-Array wieder aus (z.B: ID_1, ID_2), um dann mehrere Datensätze gleichzeitig zu aktualisieren?

... es ist ein langer weg zu einem dynamischen notdienstkalender...

Hat alles geklappt!! Vielen Dank für die prompte hilfe. :D

 
asp2php
19-02-2004, 12:02 
 
U welcome :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39 Uhr.