cheap nfl jerseys china cheap nfl jerseys free shipping wholesale nfl jerseys china wholesale jerseys from china cheap nfl jerseys free shipping cheap nfl jerseys for sale cheap jerseys free shipping wholesale nfl jerseys from china cheap nfl jerseys sale cheap nike nfl jerseys china wholesale jerseys free shipping cheap nfl jerseys wholesale wholesale nfl jerseys online cheap nfl jerseys wholesale china jerseys wholesale cheap coach handbags outlet authentic designer handbags cheap coach handbags outlet cheap coach purses outlet discount coach bags coach bags sale coach purse outlet cheap real coach purses coach handbags sale online coach purse outlet michael kors outlet online store cheap michael kors bags cheap michael kors purse michael kors factory outlet online cheap michael kors handbags cheap michael kors purses michael kors bags outlet online cheap michael kors purse michael kors handbags discount
.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.idcDatasource: 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.idcDatasource: 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>
cognome:

prima.idcDatasource: 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>
cognome:

prima.idcDatasource: 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.idcDatasource: 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.idcDatasource: 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 SELECTSELECT *, n='1'
testare la costante <%if n EQ "1" %>...
<%else%>...
<%endif%>

respingere utenti non identificati
assegnare una costante nella SELECTSELECT *, 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>