Beitrag von Jurenda (305 Beiträge) am Sonntag, 20.Juni.2004, 19:19.
Re: Frage: Wie kann ich einen bestehenden Datensatz ändern
Hmmm, mir it da nicht ganz klar, was DU da genau möchtest.
Hier mal einiges an Erklärung:
<do action=all> ist jenes Ding, das ganz einfach alles für Dich macht. Dies sollte Deine erste Wahl sein ;)
<do action=input> bearbeitet lediglich die an Dein Template übersandte Formularfelder.
<do action=list listtype=...> erzeugt eine entsprechende Ausgabe in Abhängigkeit von listtype.
Und da ist bei Dir ein Fehler drinn, der wegen einer unvollständigen Dokumentation entstanden ist :( Folgende listtype sind bekanntgegeben:
listtype=list/all/add/search
list ... erzeugt eine Listenausgabe
all ... erzeugt eine Detailausgabe eines Datensatzes (z.b.: Id==4)
search ... erzeugt ein Formular zum Suchen
add ... erzeugt ein Formular um Daten an Deine Datenbank anzuhängen!
Es gibt hier jedoch noch einen weiteren listtype (fehlt in allend Dokus):
mod ... dieser erzeugt ein Formular um einen Datensatz zu verändern
Der Unterschied von mod und add ist folgender:
Bei add wird ein leeres Formular erzeugt und das Gesendete an die Datenbank angehängt.
Bei mod werden die bestehenden Daten in die Formularfelder eingetragen und zum Beaarbeiten zur Verfügung gestellt und das Gesendete ersetzt den bestehenden Datensatz.
Ohne Perl wird es nicht möglich sein ein und das selbe Formular sowohl für Neueingaben als auch für Bearbeitung zu verwenden.
ABer vielleicht ist folgendes einen Versuch wert:
<perl>$ltyp||='add';</perl>
<head>
<meta name="robots" content="noindex">
<style type="text/css">
...
</style>
</head>
<do action=input>
<do action=list listtype=$ltyp db=Hardware>
<div align="center">
<loop db=Hardware sort=->
<table border="1" width="80%">
<tr>
<td>
<p><a href=/cgi-bin/baseportal.pl?htx=$htx<yp=mod&Id==$_id>Ändern</a></p>
<p class='1' align='left'>$Titel<br><br></p><img src='$Bild' align='left'><p align='left'>$Text</p><p>$Pressemitteilung</p>
</td>
</tr>
</table>
</loop>
</div>
Grüße Andreas :})