Beitrag von hempelr (1976 Beiträge) am Mittwoch, 3.März.2004, 19:31.
Re: synthax für feldtyp datei in ext. formular
Hallo, Till,
das ist eigentlich kein Problem, wenn man weiss, wie es geht ;-)
Ich hab da einfach das bp-interne Formular abgekupfert, je nach Formularaktion muss da das Feld _filec_feldname= belegt werden, mit 0 für nx machen, mit 1 für keine Datei und 2 für neue Datei, die Auswahl erfolgt mittels des neckischen kleinen Javascriptes von Christoph.
Wenn man die Radiofelder für _filec und das Dateifeld als solches zusammen als Bündel in der vorgegebenen Reihenfolge verwendet, gehts ohne Probleme.
Hier der Beispielccode für a) Neuanlegen eines Datensatzes und b) Ändern eines Datensatzes:
a) ----schnipp
$f1_wsdatei=<<EOF;
<input type=radio name="_filec_wsdatei=" value=1></input> Keine Datei
<input type=radio name="_filec_wsdatei=" value=2 checked></input> Neue Datei:<br>
EOF
....
out<<EOF;
.....
<tr>
<td valign="top" colspan=4 class=klein>
<span class=dunkel>Datei (Anfahrtskizze): <br>
$f1_wsdatei</span>
<input type=file name="wsdatei:=" size=30 onfocus="a=this.form.elements; for(i=0; i<a.length; i++) if(a[i].name==this.name) break; a[i-1].checked=1;"></input>
</td>
</tr>
....
----schnapp
und b) ----schnipp
$f1_wsdatei=<<EOF;
<input type="radio" name="_filec_wsdatei=" value="0" checked></input> Datei behalten ($f_wsdatei)
<input type="radio" name="_filec_wsdatei=" value="1"></input> Keine Datei
<input type="radio" name="_filec_wsdatei=" value="2"></input> Neue Datei <br>
EOF
....
<tr>
<td valign="top" colspan=4 class=klein>
<span class=dunkel>Datei (Anfahrtskizze): <br>
$f1_wsdatei</span>
<input type=file name="wsdatei:=" size=30 onfocus="a=this.form.elements; for(i=0; i<a.length; i++) if(a[i].name==this.name) break; a[i-1].checked=1;"></input>
</td>
</tr>
....
---- schnapp
hoffe, es hilft dir weiter. Axo - aufgrund der _filec_dateiname Feldkonvention ist es anzuraten, im Feldnamen weder Sonderzeichen, noch Leerzeichen noch Unterstriche zu haben, das nimmt bp dann manchmal übel ;-) und nochwas - _filec wird nur mit einfachem "=" als Feldname übergeben, der Feldname des Dateifeldes ansich dann mit ":=" - es sei denn, du speicherst die Werte aus dem get_hash dann in den put_hash um und initialisierst den put-hash entsprechend mit dem erforderlichen key-wertpaar, das die Aktionen dann veranlasst....
Ruben