.idc & .htx
|
che sono?
come controllo la SELECT?
tips
l'idea
- una SELECT produce una tabella
- il web sa visualizzare tabelle
produciamo pagine "on the fly"
da visualizzare con il browser preferito!
la prima SELECT
prima.idc | Datasource: prova
Username: guest
Password: guest
Template: prima.htx
SQLStatement:
+ SELECT Cognome, Nome from ANAGRAFICA |
solo il minimo indispensabile! |
prima.htx |
<HTML>...
<TABLE>
<%begindetail%>
<TR><TD><%Cognome%> <%Nome%></TD></TR>
<%enddetail%>
</TABLE>
...</HTML> |
i nomi delle colonne
sono le variabili (ovvio, no?) |
e l'intestazione?
se hai capito il ciclo... |
<HTML>...
<TABLE>
<TR><TD>Cognome e nome</TD></TR>
<%begindetail%>
<TR><TD><%Cognome%> <%nome%></TD></TR>
<%enddetail%>
</TABLE>
...</HTML> |
allora � facile |
e se la select fallisce?
niente paura |
<HTML>...
<TABLE>
<%begindetail%>
<TR><TD><%Cognome%> <%nome%></TD></TR>
<%enddetail%>
<%if CurrentRecord EQ 0%>
Spiacente, non ho trovato nulla
<%endif%>
</TABLE>
...</HTML> |
c'� sant'if |
if
operatori: EQ, NOTEQ
la variabile CurrentRecord � numerica, quindi EQ 0
le altre variabili sono alfabetiche, quindi EQ "0"
con parametri
prima.htm |
<HTML>...
<FORM METHOD="POST" ACTION="/scripts/prima.idc?Cognome='Bianchi'&Eta='30'">
<INPUT TYPE="SUBMIT" VALUE="Cerca i signori Bianchi di 30 anni"></FORM>
...</HTML>
|
prima.idc | Datasource: prova
Username: guest
Password: guest
Template: prima.htx
SQLStatement:
+ SELECT * from ANAGRAFICA
+ where Cognome like '%Cognome%'
and eta = '%Eta%'
|
prima.htx |
<HTML>...
<TABLE>
<%begindetail%>
<TR><TD><%Cognome%> <%Nome%></TD></TR>
<%enddetail%>
</TABLE>
...</HTML> |
con una form
prima.htm |
<HTML>...
<FORM METHOD="POST" ACTION="/scripts/prima.idc?">
cognome: <INPUT NAME="stringa">
<INPUT TYPE="SUBMIT" VALUE="Cerca"></FORM>
...</HTML> |
|
prima.idc | Datasource: prova
Username: guest
Password: guest
Template: prima.htx
SQLStatement:
+ SELECT Cognome, Nome from ANAGRAFICA
+ where Cognome like '%stringa%'
|
stesso nome! |
prima.htx |
<HTML>...
risultato della ricerca di <%idc.stringa%>
<TABLE>
<%begindetail%>
<TR><TD><%Cognome%> <%Nome%></TD></TR>
<%enddetail%>
</TABLE>
...</HTML> |
stesso nome con prefisso idc |
passo valori invisibili
prima.htm |
<HTML>...
<FORM METHOD="POST" ACTION="/scripts/prima.idc?">
cognome: <INPUT NAME="stringa">
<INPUT NAME="tipo" TYPE="HIDDEN" VALUE="ricerca per cognome:">
<INPUT NAME="output" TYPE="HIDDEN" VALUE="1">
<INPUT TYPE="SUBMIT" VALUE="Cerca"></FORM>
...</HTML> |
|
prima.idc | Datasource: prova
Username: guest
Password: guest
Template: prima%output%.htx
SQLStatement:
+ SELECT Cognome, Nome from ANAGRAFICA
+ where Cognome like '%stringa%'
|
stesso nome! |
prima1.htx |
<HTML>...
<%idc.tipo%>
risultato della ricerca di <%idc.stringa%>
<TABLE>
<%begindetail%>
<TR><TD><%Cognome%> <%Nome%></TD></TR>
<%enddetail%>
</TABLE>
...</HTML> |
stesso nome con prefisso idc |
bottoni e bottoni (passo e ripasso)
prima.htm |
<HTML>...
<FORM METHOD="POST" ACTION="/scripts/prima.idc?">
cognome: <INPUT NAME="stringa">
<INPUT TYPE="SUBMIT" VALUE="Cerca"></FORM>
...</HTML> |
form normale |
prima.idc | Datasource: prova
Username: guest
Password: guest
Template: prima.htx
SQLStatement:
+ SELECT Id, Cognome, Nome from ANAGRAFICA
+ where Cognome like '%stringa%'
|
query normale |
prima.htx |
<HTML>...risultato della ricerca di <%idc.stringa%>
<TABLE><%begindetail%><TR><TD>
<FORM METHOD="POST" ACTION="/scripts/seconda.idc?">
<INPUT NAME="N" VALUE="<%Id%>" TYPE="SUBMIT"> </FORM></TD>
<TD><%Cognome%> <%Nome%></TD></TR>
<%enddetail%></TABLE>
...</HTML> |
una colonna di pulsanti! |
seconda.idc | Datasource: prova
Username: guest
Password: guest
Template: seconda.htx
SQLStatement:
+ SELECT * from ANAGRAFICA
where Id = '%N%'
|
voglio i dati di una sola persona |
seconda.htx |
<HTML>...
<TABLE><TR>
<TD><%Cognome%> <%Nome%></TD>
<TD><%Indirizzo%> <%Telefono%></TD>
</TR></TABLE>
...</HTML> |
non � necessario il ciclo |
lanciare una pagina con un tasto
select nulla |
<FORM METHOD="POST" ACTION="pagina.idc?">
<INPUT TYPE="SUBMIT" VALUE="pagina"></FORM>
|
Datasource: prova
Username: guest
Password: guest
Template: pagina.htx
SQLStatement:
+ |
JavaScript |
<HTML><HEAD>
<script language="JavaScript"><!--
function vai() { location='pagina.htm'; } // -->
</script> </HEAD><FORM>
<INPUT TYPE="BUTTON" VALUE="home page" onClick="vai()"> </FORM>
|
|
recuperare le select vuote
assegnare una costante nella SELECT | SELECT *, n='1' |
testare la costante |
<%if n EQ "1" %>...
<%else%>...
<%endif%>
|
respingere utenti non identificati
assegnare una costante nella SELECT | SELECT *, n='1' |
test nell'HEAD |
<HEAD><%if n EQ "1" %><%else%>
<META HTTP-EQUIV="Refresh" CONTENT="10;URL=default.htm">
<%endif%></HEAD><BODY>...
|
formati diversi per utenti diversi
bottoni per la scelta |
<FORM METHOD="POST" ACTION="1/prima.idc?">
<INPUT TYPE="SUBMIT" VALUE="1"></FORM>
<FORM METHOD="POST" ACTION="2/prima.idc?">
<INPUT TYPE="SUBMIT" VALUE="2"></FORM>
|
scegliere una select
bottoni per la scelta |
<FORM METHOD="POST" ACTION="scelta.idc?">
<INPUT NAME="scelta" TYPE="RADIO" VALUE="scelta1"> scelta 1
<INPUT NAME="scelta" TYPE="RADIO" VALUE="scelta2"> scelta 2
<INPUT TYPE="SUBMIT" VALUE="procedi"></FORM>
|
scelta.idc |
Datasource: prova
Username: guest
Password: guest
Template: %scelta%
SQLStatement:
+ if %scelta% like 'scelta1' SELECT ...
+ else if %scelta% like 'scelta1' SELECT ...
|
pulsante dettagli
SELECT completa |
Datasource: prova
Username: guest
Password: guest
Template: prima
SQLStatement:
+ SELECT * from ANAGRAFICA where Cognome like '%stringa%'
|
si fa il pulsante e i valori si passano HIDDEN
se si preme il pulsante si ottengono i dettagli |
<FORM METHOD="POST" ACTION="seconda.idc?">
<INPUT TYPE="HIDDEN" NAME="Indirizzo" VALUE="<%indirizzo%>">
<INPUT TYPE="HIDDEN" NAME="Telefono" VALUE="<%telefono%>">
<INPUT TYPE="SUBMIT" VALUE="<%cognome%><%nome%>"></FORM>
|
uno o pi� di uno?
cerchiamo i signori Bianchi |
Datasource: prova
Username: guest
Password: guest
Template: prima
SQLStatement:
+ SELECT ..., n=(SELECT count(Id) from ANAG where Cognome like 'Bianchi') from ANAG
|
se ce n'� uno solo, lo facciamo vedere
altrimenti lo facciamo scegliere |
<HEAD><%if n EQ "1" %>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=seconda.idc?
cognome=<%cognome%>&nome=<%nome%>">
<%endif%></HEAD><BODY>...
<FORM METHOD="POST" ACTION="seconda.idc?">
<INPUT TYPE="HIDDEN" NAME="Indirizzo" VALUE="<%indirizzo%>">
<INPUT TYPE="HIDDEN" NAME="Telefono" VALUE="<%telefono%>">
<INPUT TYPE="SUBMIT" VALUE="<%cognome%><%nome%>"></FORM>
|
passare valori
se abbiamo una variabile
e vogliamo mantenerne il valore: |
Datasource: prova
Username: guest
Password: guest
Template: prima
SQLStatement:
+ SELECT var=%var%, ... from ANAG
|
|
<BODY>...
<%var%>
...
</BODY>
|