Vstupnφ prvky HTML formulß°e

Vstupnφmi prvky formulß°e myslφme editaΦnφ pole, oznaΦovacφ Φtverce, p°epφnaΦe, textovß pole a dalÜφ.

P°i vytvß°enφ t∞chto prvk∙ ve formulß°i musφme peΦliv∞ volit jejich jmΘna, tzn. parametry NAME jednotliv²ch INPUT nebo SELECT tag∙ (blφ₧e viz popis HTML). R∙znΘ vstupnφ prvky musφme pojmenovat jednoznaΦn²mi jmΘny v rßmci danΘho formulß°e, nesmφ tedy v jednom formulß°i existovat dva vstupnφ prvky se stejn²m jmΘnem (rozdφlnß jmΘna prvk∙ se net²kajφ samoz°ejm∞ skupiny oznaΦovacφch Φtverc∙ (CheckBox∙) nebo p°epφnaΦ∙ (RadioButton∙), kde se naopak shodnost jmen vy₧aduje). Tato jmΘna vstupnφch prvk∙ pak budeme pou₧φvat p°i sestavovßnφ WBC konektor∙.

Mß-li b²t vstupnφ prvek formulß°e napln∞n daty (nap°. combo nebo listbox), musφ v Üablon∞ p°edchßzet konektor s vhodn²m blokem SQLStatement obsahujφcφ zdroj (viz p°φklad 2 a 3).

P°φklad 1:

Ve (statickΘm) formulß°i jsou t°i editaΦnφ pole (druhΘ a t°etφ mß p°ednastavenou implicitnφ hodnotu):

<FORM METHOD=GET ACTION="/cgi-bin/wbcgi.exe/moje_db/anketa/vstup.htw">
<TABLE>
<TR><TD>jmΘno zßkaznφka:</TD><TD><INPUT TYPE="TEXT" NAME="jmeno" VALUE="" SIZE=10 MAXLENGTH=10></TD></TR>
<TR><TD>e-mail:</TD><TD><INPUT TYPE="TEXT" NAME="email" VALUE="@" SIZE=20 MAXLENGTH=100><BR></TD></TR>
<TR><TD>poΦet instalacφ:</TD><TD><INPUT TYPE="TEXT" NAME="pocet" VALUE="1" SIZE=6 MAXLENGTH=6><BR></TD></TR>
</TABLE>
<INPUT TYPE="SUBMIT" VALUE="Odeslat">
<INPUT TYPE="RESET" VALUE="Vymazat">
</FORM>

Po stisku tlaΦφtka Odeslat WebServer spustφ WinBase CGI klienta, kter² se p°ipojφ na databßzov² server ômoje_dbö, otev°e aplikaci ôanketaö a vykonß p°φkazy z konektoru, kter² je zadßn ve WBC sekci Üablony VSTUP.HTW (tzn. ₧e ve v²Üe uvedenΘ aplikaci existuje WWW objekt ôvstupö, kter² je typu Üablona), pou₧ije p°itom hodnoty zadanΘ do editaΦnφch polφ.

P°φklad 2:

Formulß° pro p°ihlßÜenφ (zadßnφ jmΘna a hesla), kter² je pot°eba, mß-li se zavΘst systΘm oprßvn∞nφ na ·rovni aplikace (na ·rovni serveru nelze, vÜichni se p°ihlaÜujφ jako __WEB), obsahuje nep°eklßdanΘ combo s nabφdkou jmen u₧ivatel∙ v aplikaci a editaΦnφ pole pro heslo.

<%WBC%>
SQLStatement: LogNames
+ SELECT id, jmeno, heslo
+ FROM Logtable
+ ORDER BY jmeno
<%/WBC%>

<HTML>
<HEAD>
<TITLE>P°ihlaÜte se:</TITLE>
</HEAD>
<BODY>
<H1>P°ihlaÜte se:</H1>
<FORM ACTION="<%wb_url%>/next.htw" METHOD="POST">
<TABLE>
<TR>
    <TD>Vyberte jmΘno:</TD>
    <TD><SELECT NAME="name">
<%begindetail LogNames%>
    <OPTION VALUE="<%jmeno%>"><%jmeno%>
<%enddetail%>
    </SELECT></TD>
</TR>
<TR>
    <TD>Zadejte heslo:</TD>
    <TD><INPUT TYPE="Password" NAME="passw"></TD>
</TR>
</TABLE>
<INPUT TYPE="Submit" VALUE="Odeslat">
</FORM>
</BODY>
</HTML>

P°φklad 3:

╚ßst Üablony obsahujφcφ listbox napln∞n² z Φφselnφku:

<%WBC%>

SQLStatement: OkresList
+ SELECT nazevo, cisloo
+ FROM Okresy
+ ORDER BY nazevo

SQLStatement: Kolik
+ SELECT Count(*) AS kol
+ FROM Reality
<%/WBC%>

<BR><BR>
<B>Zadejte omezujφcφ podmφnky na v²b∞r:</B><BR>
<BR>
<HR WIDTH="60%" ALIGN="LEFT">

<FORM METHOD="POST" ACTION="<%wb_url%>/20.htw">
<TABLE WIDTH="70%">
<TR>
<TD VALIGN="TOP">Typ:</TD>
<TD><SELECT NAME="typ">
    <OPTION VALUE="1">prodej
    <OPTION VALUE="0">pronßjem
    <OPTION VALUE="-1">oboje 
    </SELECT></TD>
<TD>&nbsp;</TD>
<TD VALIGN="TOP">Okres:</TD>
<TD><SELECT NAME="okr" MULTIPLE SIZE="3">
    <%begindetail OkresList%>
    <OPTION VALUE=<%cisloo%>><%nazevo%> 
    <%enddetail%>
    </SELECT></TD>
<TD>vyberte jeden nebo vφce okres∙</TD></TR>

</TABLE>
<BR>
Dnes je v nabφdce <%Kolik.kol%> nemovitostφ.

<BR> <BR> 
<HR WIDTH="60%" ALIGN="LEFT">
<TABLE BORDER="0" WIDTH="60%"><TR>
<TD WIDTH="50%" ALIGN="RIGHT"><INPUT TYPE="SUBMIT" VALUE="Vybrat podle zadßnφ"></TD>
<TD WIDTH="50%" ALIGN="LEFT"><INPUT  TYPE="RESET"  VALUE="Reset zadßnφ"></TD>
</TR></TABLE>

</FORM>

P°φklad 4:

Formulß° mß mj. obsahovat checkbox pro editaci sloupce typu Boolean.

a) je t°eba zobrazit checkbox zatr₧en² Φi nezatr₧en² podle souΦasnΘho stavu:

<TR valign=top>
<TD VALIGN="TOP">Potvrzovat objednßvku mailem?&nbsp;</TD>
<TD>
<%if syspar.mailovat%>
<INPUT NAME="mailovat" TYPE="CHECKBOX" VALUE="dummy" CHECKED>
<%else%>
<INPUT NAME="mailovat" TYPE="CHECKBOX" VALUE="dummy">
<%endif%>
</TD>
</TR>

b) v nßslednΘm konektoru je t°eba reagovat na koneΦn² stav (poznß se podle dΘlky prom∞nnΘ MAILOVAT):

SQLStatement: upd
+ UPDATE Sys_par
+ SET `platnost_cen_od` = %platnost_cen_od%,
+ `mailovat` = (CASE WHEN CHAR_LENGTH("%?mailovat%")>0 THEN TRUE ELSE FALSE END),
+ `profil` = "%profil%",
+...

PokraΦovßnφ:

Vstupnφ HTML formulß°e

Statick² a dynamick² formulß°

Akce formulß°e