Condividi:        

Questionario online: NON funzionante (?)

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, Anthony47, axelrox

Postdi KID.A » 23/03/03 01:38

Andiamo per punti:

- gli oggetti con proprietà "document.forms", li avevo già
cambiati[stamattina, mentre attendevo un tuo reply], sostituendo le
parentesi quadre al posto delle tonde, cioè:
Codice: Seleziona tutto
 document.forms['risposte'].action=document.forms['risposte'].elements
['hindietrov']....
....però non mi ha risolto il problema!


- mi puoi charire il discorso sulle variabili, tipo:
frm = document.forms('risposte')


- non voglio che mi corregga tu tutto il codice (sarebbe bello, ma alla fine
non imparo molto):
però, siccome non me ne intendo ancora, ti chiedo se hai pazienza di darmi
le indicazioni e dare un'occhiata ai miei tentativi.
Ecco il primo tentativo:

Codice: Seleziona tutto
<html>
    <head>
            <script LANGUAGE="Javascript">


function uscitaimprovvisa(e)
{
if(!e) e = window.event;
py=e.clientY;
if (py<0)
{
if(e.preventDefault) e.preventDefault()
else e.returnValue=true
/*
event.returnValue="ATTENZIONE! ...etc etc. ";
*/
}
//alert(py + "Uscendo i dati non verranno registrati
correttamente!")
}



function cancella_cmenu(e)
    {
if(!e) e = window.event;
py=e.clientY;
if (py<0)
{
if(e.preventDefault) e.preventDefault()
else e.returnValue=false
/*
event.returnValue=false;
*/
    }

function inviaavanti(e)
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
ti'].value;
document.forms['risposte'].submit();
}

function inviaindietro(e)
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etro'].value;
document.forms['risposte'].submit();
}

function inviaavantiv(e)
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
tiv'].value;
document.forms['risposte'].submit();
}

function inviaindietrov(e)
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etrov'].value;
document.forms['risposte'].submit();
}

//segnala che è stat modificata una domanda e gestisce la rispota singola
function dommodificata(tipo,elem,nrisposte)

{

var lett =new Array();
lett[1]='a';
lett[2]='b';
lett[3]='c';
lett[4]='d';
lett[5]='e';
lett[6]='f';


document.forms['risposte'].elements['hmodificata'].value="ok";
//alert(elem);
if (tipo=='s')
{

for (i=1; i<=nrisposte; i++)
{
    if (!(i==elem))
    {
     strelem='risp' + lett[i];
     document.forms['risposte'].elements[strelem].checked=false;
     }
}
}
}

//chiamata quando ci si prepara a uscire
function uscita(e)
{
document.forms['risposte'].elements['huscita'].value="ok";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();
}

//se si decide di non uscire
function nouscita(e)
{
document.forms['risposte'].elements['huscita'].value="no";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();

}

//se si decide di uscire
function termina(e)
{
document.forms['risposte'].action=document.forms['risposte'].elements['hstrt
ermina'].value;
document.forms['risposte'].submit();
}

function doLoad(e)
{
setTimeout( "refresh()", 90*60*1000 );
}
function refresh(e)
{

window.location.href=window.location.href
//window.location.reload( false );
}

</script>
    </head>


<body onload="doLoad()" onbeforeunload='uscitaimprovvisa(event)'
xonkeydown='cancella_cmenu(event)' xoncontextmenu='cancella_cmenu(event)'
bgcolor="#FFFFFF">
   <center>
            <table border="0" width="100%" cellspacing="1" cellpadding="3">
                <tr>
                    <td width="152" bgcolor="white" style="border: 1 solid
#000080" align="center" rowspan="3"><img border="0"
src="Img/*******.gif"></td>
                    <td bgcolor="#d90000" style="border: 1 solid #000080"
align="center" width="48%"><font color="white" size="2"
face="Arial"><b>**************</b></font></td>
                    <td bgcolor="#d90000" style="border-right: 1 solid
#000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"
align="center" width="57%"><font color="white" face="Arial"
size="2"><b>Questionario 002 </b></font><font face="Arial" size="2"><b><br>
                        </b></font><b><font size="1" color="black"
face="Arial">(MINUTI: 0 circa)</font> </b></td>
                </tr>
                <tr>
                    <td width="48%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" size="1" face="Arial"><b>Domanda n& 1 di 100</b></font></td>
                    <td width="57%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" face="Arial" size="1"><b>Domande senza risposta:
100</b></font></td>
                </tr>
                <tr>
                    <td colspan="2" bgcolor="#b7cfe2" style="border-right: 1
solid #000080; border-bottom: 1 solid #000080">
                        <center>
                            <font color="#003466" size="1"
face="Arial"><b>Tematica: DL</b></font></center>
                    </td>
                </tr>
            </table>
        </center>
        <center>
            <p>
            <form name="risposte" method="POST" action="(Empty Reference!)">
            <table border="0" width="90%" cellspacing="0" cellpadding="3"
height="110">
                <tr height="49">
                    <td colspan="2" bgcolor="#b7cfe2" style="border: 1 solid
#000080" height="49"><font face="Arial" size="2"><b>1) Che tipo di
informazione fornisce l'immagine scintigrafica? </b><br>
                        <br>
                        </font></td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">funz
ionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispa" value="ON" onclick="dommodificata('s',1,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfo-funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispb" value="ON" onclick="dommodificata('s',2,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">strutturale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispc" value="ON" onclick="dommodificata('s',3,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfologica<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispd" value="ON" onclick="dommodificata('s',4,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">nessuna delle precedenti<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispe" value="ON" onclick="dommodificata('s',5,5)"> </font></center>
                    </td>
                </tr>
<input name="havanti" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietro" type="hidden">
<input name="hiddom" type="hidden" value="243">
<input name="havantiv" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietrov" type="hidden" value="=fr">
<input name="hmodificata" type="hidden" value="no">
<input name="huscita" type="hidden" value="no">
<input name="hstruscita" type="hidden"
value="domanda.asp?utente=...................">
<input name="holdambito" type="hidden" value="dl_02"><input
name="hcolambito" type="hidden" value="2">
<input name="hstrtermina" type="hidden" value="termina.asp?utente=........">
                </form>
            </table>
            </p>
        </center>
        <center>
            <p><br>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="40%">
                <tr>
                    <td width="25%"></td>
                    <td width="25%"></td>
                    <td width="25%">
                        <center>

                     <a href="#" onclick="inviaavanti(event); return false;"><img
border="0" src="Img/arr_bluedown1.gif" width="15" height="15"
alt="Avanti"></a></center>

                    </td>
                    <td width="25%">
                        <center>
<a href="#" onclick="inviaavantiv(event); return false;"><img border="0"
src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce
(domanda senza risposta)"></a>
</center>
                    </td>
                </tr>
            </table>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="20%" cellspacing="0" cellpadding="3"
bordercolor="#000080" bgcolor="white">
                <tr>
                    <td width="25%" bgcolor="white" onclick="uscita(event)"
style="cursor:pointer" <p align="center" > <img border="0"
src="img/esci.gif" width="114" height="18" alt="esci e registra il test">
</td> </tr> </table> </center> </div> </body></td>
                </tr>
            </table>
        </center>
    </body>

</html>




In questo 1° caso, su Explorer 5x/win (l' unico su cui funzionava) mi dà un
sacco di errori di debug (Errore previsto - Eccezione di runTime JsScript!!!


***************************
***************************


oppure



Codice: Seleziona tutto
<html>
<head>
<script LANGUAGE="Javascript">

function uscitaimprovvisa()
    {
    py=event.clientY;
    if (py<0)
    {
    event.returnValue="ATTENZIONE! Chiudendo la finestra in questo modo il
sistema non registra definitivamente i dati e sarà possibile proseguire lo
stesso questionario in seguito.\n Per registrare definitivamente i risultati
è necessario premere il pulsante 'ANNULLA' ('CANCEL') in questa finestra e
poi il pulsante 'ESCI' nella finestra principale, solo in questo caso il
sistema comunicherà il punteggio ottenuto. ";

         }
        //alert(py + "Uscendo i dati non verranno registrati
correttamente!")
    }


function cancella_cmenu()
    {
        event.returnValue=false;

    }

function inviaavanti()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
ti'].value;
document.forms['risposte'].submit();
}

function inviaindietro()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etro'].value;
document.forms['risposte'].submit();
}

function inviaavantiv()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
tiv'].value;
document.forms['risposte'].submit();
}

function inviaindietrov()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etrov'].value;
document.forms['risposte'].submit();
}

//segnala che è stat modificata una domanda e gestisce la rispota singola
function dommodificata(tipo,elem,nrisposte)

{

var lett =new Array();
lett[1]='a';
lett[2]='b';
lett[3]='c';
lett[4]='d';
lett[5]='e';
lett[6]='f';


document.forms['risposte'].elements['hmodificata'].value="ok";
//alert(elem);
if (tipo=='s')
{

for (i=1; i<=nrisposte; i++)
{
    if (!(i==elem))
    {
     strelem='risp' + lett[i];
     document.forms['risposte'].elements[strelem].checked=false;
     }
}
}
}

//chiamata quando ci si prepara a uscire
function uscita()
{
document.forms['risposte'].elements['huscita'].value="ok";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();
}

//se si decide di non uscire
function nouscita()
{
document.forms['risposte'].elements['huscita'].value="no";
document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
document.forms['risposte'].submit();

}

//se si decide di uscire
function termina()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hstrt
ermina'].value;
document.forms['risposte'].submit();
}

function doLoad()
{
setTimeout( "refresh()", 90*60*1000 );
}
function refresh()
{

window.location.href=window.location.href
//window.location.reload( false );
}

</script>
    </head>


<body onload="doLoad()" onbeforeunload='uscitaimprovvisa()'
xonkeydown='cancella_cmenu()' xoncontextmenu='cancella_cmenu()'
bgcolor="#FFFFFF">        <center>
            <table border="0" width="100%" cellspacing="1" cellpadding="3">
                <tr>
                    <td width="152" bgcolor="white" style="border: 1 solid
#000080" align="center" rowspan="3"><img border="0"
src="Img/*******.gif"></td>
                    <td bgcolor="#d90000" style="border: 1 solid #000080"
align="center" width="48%"><font color="white" size="2"
face="Arial"><b>**************</b></font></td>
                    <td bgcolor="#d90000" style="border-right: 1 solid
#000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"
align="center" width="57%"><font color="white" face="Arial"
size="2"><b>Questionario 002 </b></font><font face="Arial" size="2"><b><br>
                        </b></font><b><font size="1" color="black"
face="Arial">(MINUTI: 0 circa)</font> </b></td>
                </tr>
                <tr>
                    <td width="48%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" size="1" face="Arial"><b>Domanda n& 1 di 100</b></font></td>
                    <td width="57%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" face="Arial" size="1"><b>Domande senza risposta:
100</b></font></td>
                </tr>
                <tr>
                    <td colspan="2" bgcolor="#b7cfe2" style="border-right: 1
solid #000080; border-bottom: 1 solid #000080">
                        <center>
                            <font color="#003466" size="1"
face="Arial"><b>Tematica: DL</b></font></center>
                    </td>
                </tr>
            </table>
        </center>
        <center>
            <p>
            <form name="risposte" method="POST" action="(Empty Reference!)">
            <table border="0" width="90%" cellspacing="0" cellpadding="3"
height="110">
                <tr height="49">
                    <td colspan="2" bgcolor="#b7cfe2" style="border: 1 solid
#000080" height="49"><font face="Arial" size="2"><b>1) Che tipo di
informazione fornisce l'immagine scintigrafica? </b><br>
                        <br>
                        </font></td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispa" value="ON" onclick="dommodificata('s',1,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfo-funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispb" value="ON" onclick="dommodificata('s',2,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">strutturale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispc" value="ON" onclick="dommodificata('s',3,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfologica<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispd" value="ON" onclick="dommodificata('s',4,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">nessuna delle precedenti<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispe" value="ON" onclick="dommodificata('s',5,5)"> </font></center>
                    </td>
                </tr>
<input name="havanti" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietro" type="hidden">
<input name="hiddom" type="hidden" value="243">
<input name="havantiv" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietrov" type="hidden" value="=fr">
<input name="hmodificata" type="hidden" value="no">
<input name="huscita" type="hidden" value="no">
<input name="hstruscita" type="hidden"
value="domanda.asp?utente=...................">
<input name="holdambito" type="hidden" value="dl_02"><input
name="hcolambito" type="hidden" value="2">
<input name="hstrtermina" type="hidden" value="termina.asp?utente=........">
                </form>
            </table>
            </p>
        </center>
        <center>
            <p><br>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="40%">
                <tr>
                    <td width="25%"></td>
                    <td width="25%"></td>
                    <td width="25%">
                        <center>

                     <a href="#" onclick="inviaavanti(); return false;"><img
border="0" src="Img/arr_bluedown1.gif" width="15" height="15"
alt="Avanti"></a></center>

                    </td>
                    <td width="25%">
                        <center>
<a href="#" onclick="inviaavantiv(); return false;"><img border="0"
src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce
(domanda senza risposta)"></a>
</center>
                    </td>
                </tr>
            </table>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="20%" cellspacing="0" cellpadding="3"
bordercolor="#000080" bgcolor="white">
                <tr>
                    <td width="25%" bgcolor="white" onclick="uscita()"
style="cursor:pointer" <p align="center" > <img border="0"
src="img/esci.gif" width="114" height="18" alt="esci e registra il test">
</td> </tr> </table> </center> </div> </body></td>
                </tr>
            </table>
        </center>
    </body>

</html>




In questo 2° caso, è Ok su Explorer/win, ma non credo che la stringa
Codice: Seleziona tutto
function uscitaimprovvisa()
    {
    py=event.clientY;
    if (py<0)
    {
    event.returnValue="ATTENZIONE! Chiudendo ....etc. ";

         }


funga su Netscape...???




In entrambi i casi, NON so come sostituire i gestori evento
"onbeforeunload, xonkeydown, xoncontextmenu" ...???





ciao, grazie

PS:
ripeto: non l'ho scritto io quel codice...l'ho trovato fatto e ne ho
constatato l'inompatibilità con Netscape e con i browsers/Mac.
Il mio intento è modificarlo per esntenderne la compatibilità (se poi lo
alleggerisco e rendo anche + elegante, tanto meglio!)

--> mi puoi indicare un editor/debugger Javascript (uno che tu ritieni
valido) che giri anche su Mac?
oppure potrei usare la consolle di NN 7/mac (mi pareva di averla usata una
volta, ma nella vers.4x...la si richiama digitando "javascript :" nella
barraURL ?)
[su Win uso solo Explorer.]

Phoenix non l'ho trovato (sia su tucows sia zdnet?)
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Sponsor
 

Postdi Nicola » 23/03/03 11:26

phoenix è solo per linux, windows e os/2 e lo trovi su http://www.mozilla.org/projects/phoenix/phoenix-release-notes.html

;)
Nicola
Nicola
Utente Senior
 
Post: 7381
Iscritto il: 08/02/02 01:00

Postdi piercing » 23/03/03 14:16

kid... non ti risolve il problema perchè quella pagina di problemi ne ha molti...

io ti consiglio di prendere una funzione per volta e inventarti una paginetta semplice per testare la funzione...

così facendo vai solo a sommare errori su errori senza tirare fuori nulla di buono...

per la gestione di quei tre eventi la cosa è molto semplice... toglili... a che servono? (lo so a che servono... ma li trovo inutili ai fini della pagina...).

consiglio: le cose vanno fatte una per volta.... oppure devi partire essendo certo del risultato...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi KID.A » 23/03/03 16:55

almeno indicami dove sono i problemi, su cui dovrei concentrarmi....

e mi potresti chiarire cosa servono quei gestori eevento:
ho cercato anche su http://msdn.microsoft.com/ ma non ho trovato info.
o meglio non ho trovato xonkeydown, xoncontextmenu , bensì onkeydown, oncontextmenu
(vorrei capire se, togliendoli, comprometto qcosa o al contrario miglioro la
compatibilità - perché, tolti, si IE/win funge ugualmente)
Sarebbero espressioni solo JScript ?

Se non chiedo troppo, ho fatto qualche modifica ed ora su Explorer/Win
funziona (domani provo su Mac, in particolare Netscape)...se vuoi darci
un'occhiata:
Codice: Seleziona tutto
<html>
    <head>
            <script LANGUAGE="Javascript">


function uscitaimprovvisa(e){
 if(!e) e = window.event;
 py=e.clientY;
 if (py<0){
  if(e.preventDefault) e.preventDefault()
  else e.returnValue=true

  event.returnValue="ATTENZIONE! Chiudendo la finestra in questo modo il
sistema non registra definitivamente i dati e sarà possibile proseguire lo
stesso questionario in seguito.\n Per registrare definitivamente i risultati
è necessario premere il pulsante 'ANNULLA' ('CANCEL') in questa finestra e
poi il pulsante 'ESCI' nella finestra principale, solo in questo caso il
sistema comunicherà il punteggio ottenuto. ";

 }
 //alert(py + "Uscendo i dati non verranno registrati correttamente!")
}



function cancella_cmenu(e){
 if(!e) e = window.event;
 py=e.clientY;
 if (py<0){
  if(e.preventDefault) e.preventDefault()
  else e.returnValue=false

  event.returnValue=false;

     }
}

function inviaavanti()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
ti'].value;
document.forms['risposte'].submit();
}

function inviaindietro()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etro'].value;
document.forms['risposte'].submit();
}

function inviaavantiv()
{
document.forms['risposte'].action=document.forms['risposte'].elements['havan
tiv'].value;
document.forms['risposte'].submit();
}

function inviaindietrov()
{
document.forms['risposte'].action=document.forms['risposte'].elements['hindi
etrov'].value;
document.forms['risposte'].submit();
}


//segnala che è stat modificata una domanda e gestisce la rispota singola

function dommodificata(tipo,elem,nrisposte){
 var lett =new Array();
 lett[1]='a';
 lett[2]='b';
 lett[3]='c';
 lett[4]='d';
 lett[5]='e';
 lett[6]='f';

 document.forms['risposte'].elements['hmodificata'].value="ok";
 //alert(elem);
 if (tipo=='s'){

  for (i=1; i<=nrisposte; i++){
       if (!(i==elem)) {
         strelem='risp' + lett[i];
         document.forms['risposte'].elements[strelem].checked=false;
        }
  }
 }
}

//chiamata quando ci si prepara a uscire
function uscita(){
 document.forms['risposte'].elements['huscita'].value="ok";

document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
 document.forms['risposte'].submit();
}

//se si decide di non uscire
function nouscita(){
 document.forms['risposte'].elements['huscita'].value="no";

document.forms['risposte'].action=document.forms['risposte'].elements['hstru
scita'].value;
 document.forms['risposte'].submit();
}

//se si decide di uscire
function termina(e){

document.forms['risposte'].action=document.forms['risposte'].elements['hstrt
ermina'].value;
 document.forms['risposte'].submit();
}

function doLoad(){
 setTimeout( "refresh()", 90*60*1000 );
}

function refresh(){
 window.location.href=window.location.href
//window.location.reload( false );
}


</script>
    </head>


<body onload="doLoad()"  onbeforeunload='uscitaimprovvisa(event)'
bgcolor="#FFFFFF">
   <center>
            <table border="0" width="100%" cellspacing="1" cellpadding="3">
                <tr>
                    <td width="152" bgcolor="white" style="border: 1 solid
#000080" align="center" rowspan="3"><img border="0"
src="Img/*******.gif"></td>
                    <td bgcolor="#d90000" style="border: 1 solid #000080"
align="center" width="48%"><font color="white" size="2"
face="Arial"><b>**************</b></font></td>
                    <td bgcolor="#d90000" style="border-right: 1 solid
#000080; border-top: 1 solid #000080; border-bottom: 1 solid #000080"
align="center" width="57%"><font color="white" face="Arial"
size="2"><b>Questionario 002 </b></font><font face="Arial" size="2"><b><br>
                        </b></font><b><font size="1" color="black"
face="Arial">(MINUTI: 0 circa)</font> </b></td>
                </tr>
                <tr>
                    <td width="48%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" size="1" face="Arial"><b>Domanda n& 1 di 100</b></font></td>
                    <td width="57%" style="border-left: 1 solid #000080;
border-right: 1 solid #000080" bgcolor="#d90000" align="center"><font
color="white" face="Arial" size="1"><b>Domande senza risposta:
100</b></font></td>
                </tr>
                <tr>
                    <td colspan="2" bgcolor="#b7cfe2" style="border-right: 1
solid #000080; border-bottom: 1 solid #000080">
                        <center>
                            <font color="#003466" size="1"
face="Arial"><b>Tematica: DL</b></font></center>
                    </td>
                </tr>
            </table>
        </center>
        <center>
            <p>
            <form name="risposte" method="POST" action="(Empty Reference!)">
            <table border="0" width="90%" cellspacing="0" cellpadding="3"
height="110">
                <tr height="49">
                    <td colspan="2" bgcolor="#b7cfe2" style="border: 1 solid
#000080" height="49"><font face="Arial" size="2"><b>1) Che tipo di
informazione fornisce l'immagine scintigrafica? </b><br>
                        <br>
                        </font></td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial" size="2">funz
ionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispa" value="ON" onclick="dommodificata('s',1,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfo-funzionale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispb" value="ON" onclick="dommodificata('s',2,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">strutturale<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispc" value="ON" onclick="dommodificata('s',3,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">morfologica<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispd" value="ON" onclick="dommodificata('s',4,5)"> </font></center>
                    </td>
                </tr>
                <tr height="49">
                    <td width="84%" valign="top" bgcolor="white"
style="border-left: 1 solid #000080; border-right: 1 solid #000080;
border-bottom: 1 solid #000080" height="49"><font face="Arial"
size="2">nessuna delle precedenti<br>
                        <br>
                        </font></td>
                    <td width="16%" valign="top" bgcolor="white"
style="border-right: 1 solid #000080; border-bottom: 1 solid #000080"
height="49">
                        <center>
                            <font face="Arial" size="2"><input type="radio"
name="rispe" value="ON" onclick="dommodificata('s',5,5)"> </font></center>
                    </td>
                </tr>
<input name="havanti" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietro" type="hidden">
<input name="hiddom" type="hidden" value="243">
<input name="havantiv" type="hidden"
value="domanda.asp?utente=...................">
<input name="hindietrov" type="hidden" value="=fr">
<input name="hmodificata" type="hidden" value="no">
<input name="huscita" type="hidden" value="no">
<input name="hstruscita" type="hidden"
value="domanda.asp?utente=...................">
<input name="holdambito" type="hidden" value="dl_02"><input
name="hcolambito" type="hidden" value="2">
<input name="hstrtermina" type="hidden" value="termina.asp?utente=........">
                </form>
            </table>
            </p>
        </center>
        <center>
            <p><br>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="40%">
                <tr>
                    <td width="25%"></td>
                    <td width="25%"></td>
                    <td width="25%">
                        <center>

                     <a href="#" onclick="inviaavanti(event); return
false;"><img
border="0" src="Img/arr_bluedown1.gif" width="15" height="15"
alt="Avanti"></a></center>

                    </td>
                    <td width="25%">
                        <center>
<a href="#" onclick="inviaavantiv(event); return false;"><img border="0"
src="Img/avantiveloce.gif" width="32" height="17" alt="Avanti veloce
(domanda senza risposta)"></a>
</center>
                    </td>
                </tr>
            </table>
            </p>
        </center>
        <center>
            <p>
            <table border="0" width="20%" cellspacing="0" cellpadding="3"
bordercolor="#000080" bgcolor="white">
                <tr>
                    <td width="25%" bgcolor="white" onclick="uscita()"
style="cursorointer" <p align="center" > <img border="0"
src="img/esci.gif" width="114" height="18" alt="esci e registra il test">
</td> </tr> </table> </center> </div> </body></td>
                </tr>
            </table>
        </center>
    </body>

</html>

Ultima modifica di KID.A su 25/03/03 20:21, modificato 1 volte in totale.
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi Nicola » 23/03/03 17:07

(ho eliminato 2 messaggi uguali a quello prima del mio di KID.A ;))
Nicola
Nicola
Utente Senior
 
Post: 7381
Iscritto il: 08/02/02 01:00

Postdi KID.A » 24/03/03 17:46

PIERCING;

Adesso ho testato il codice posta sopira (l'ultimo) n MAC:

- gestione Eventi= OK! Tutto funziona!
Ho tolto i quei gestori evento= tutto Ok lo stesso
(sai Win sia Mac)
non credo abbia compromesso nulla (anche se non ho capio a cosa servissero?)


- rimane un piccilo PROBLEMINO con l'Alert:

1)
su Explorer 5x/Mac viene viusalizzato, ma la riga da "sistema non registra definitivamente i dati e sarà possibile proseguire lo
stesso questionario in seguito.\n Per registrare definitivamente i risultati
è necessario premere il pulsante 'ANNULLA' ('CANCEL') in questa finestra e
poi il pulsante 'ESCI' nella finestra principale, solo in questo caso il
sistema comunicherà il punteggio ottenuto."
viene tagliata !!!??
Riprende poi correttamente da "Fare clic sou OK per continuare .etc".

Inoltre la "à" di "sarà" in MAC non viene scritta corretamente nella finestra di Alert (ho provato a scrivere "sar\à" ed altri tentativi, ma non viene scritta ....?)



2)
su Netscape 7/Mac
l?Alert, a chiusura di pagina, NON viene visualizzato
(né con né senza i carattere "/* .... */" nel codice)



Mi puoi aiutare a risolvere questi ultimi dettagli...poi sarebbe perfettamente crossbrowser+crossplatform.

GRAXIE !
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi piercing » 03/04/03 01:08

KID... mi ero dimenticato di te... ;)

per concludere il discorso (che è continuato in privato) sugli eventi del body...

il messaggio di chiusura secondo me te lo puoi scordare... nel senso che tanto non otterresti mai un risultato decente e compatibile... quindi sta a te capire come fare... (io fosse per me lascerei perdere e basta)

considera che:
-onbeforeunload è compatibile solo con explorer in versioni abbastanza recenti
-onunload viene richiamato ogni volta che la pagina viene unloadata... concetto di per sè abbastanza difficile da capire con esattezza... comunque in pratica viene lanciato se si cambia pagina, oppure se si ricarica la stessa pagina.... ma non se la pagina viene chiusa, proprio perchè in quel caso l'evento di chiusura pagina (in pratica la [x]) viene attivato prima della chiamata all'evento stesso, e quindi il browser viene chiuso prima che l'evento venga lanciato... proprio per questo motivo MS si è inventata l'evento "predittivo" che abbiamo visto sopra... Questo evento ha però il vantaggio di essere compatibile con tutti i browser (bella soddisfazione!!).

In pratica per essere compatibile dovresti usare il secondo che però non funziona proprio nel caso che a te serve... cioè quello della chiusura forzata del browser...

Spero di averti chiarito la questione.

Ciao ;)
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi KID.A » 04/04/03 10:58

carissimo Piercing,

credevo che tu mi avessi abbandonato...
scherzi a parte, credevo ti fossi "rotto" dei miei problemi e tentativi di
soluzione !
ho ancora qualcosa x te....

onbeforeunload...
....per questomotivo MS si è inventata l'evento "predittivo" che abbiamo
visto sopra... Questo evento ha però il vantaggio di essere compatibile con
tutti i browser (bella soddisfazione!!).

...volevi dire "non essere compatibile con tutti i browser" !?

Allora, mi escludi completamente che ci sia un qualche gestore evento che possa lanciare
un messaggio di Alert in chiusura [x] di finestra (compatibil almeno con le
+ recenti vers. dei principali browsers?

Se così fosse (purtroppo credo anch'io di sì), l'unico modo per avere questo controllo-avviso in
Netscape è gestirlo dalla Finestra Madre(che labcia la Popup) ?
se non sei ancora stufo di sentirmi...nel frattempo ho pensato a questo:
[Ti ricorderai che il "famigerato" Questionario è gestito in una finestra
Popup(=myQuest), la quale viene lanciata dalla Home del sito;
se nella finestra MADRE ci metto questo:

Codice: Seleziona tutto
function controllaChiusuraNS(){
 if(myQuest && myQuest.closed) {
  alert("i dati settati andranno persi")
  clearInterval(timer)
 }
}

function apriQuest(){
opt = "  toolbar=no,location=no,status=no,menubar
 =no,scrollbars=yes,width=640,height=480,
resizable=yes"
myQuest =
window.open("Assessment/SceltaTest.asputente=**************","Test",opt)
if(navigator.userAgent.toLowerCase().indexOf("msie")==-1 || window.opera)
 timer = setInterval("controllaChiusuraNS()",10);
}


e nella finestra POPUP lascio la gestione eventi così:
Codice: Seleziona tutto
<script LANGUAGE="Javascript">

function uscitaimprovvisa(e)
{
 if(!e) e = window.event;
 py=e.clientY;
 if (py<0){
  if(e.preventDefault) e.preventDefault()
  else e.returnValue=true

  event.returnValue="ATTENZIONE! Chiudendo la finestra in questo modo il
sistema non registra definitivamente i dati etc etc. ";

 }
   alert(py + "Uscendo i dati non verranno registrati correttamente!")
}


function avvisa_perdita(){
if(navigator.userAgent.toLowerCase().indexOf("msie")==-1 || window.opera){

alert("i dati andranno persi")
}
}


function cancella_cmenu(e)
{
 if(!e) e = window.event;
 py=e.clientY;
 if (py<0){
  if(e.preventDefault) e.preventDefault()
  else e.returnValue=false

  event.returnValue=false;

     }
}
...............

<body onload="doLoad()" onbeforeunload="uscitaimprovvisa(event)"
onunload="avvisa_perdita()"




Può essere una soluzione "crossbrowser" o quasi?
Ma tu come avresti ri-editato i codici, me lo puoi dire ???
ciao!

PS: domanda forse banale:
se volessi conoscere nei dettagli la struttura e gerarchia del DOM dei
principlai browser e loro versioni...ome, dove posso conoscerla?
KID.A
Utente Senior
 
Post: 662
Iscritto il: 27/05/02 17:35

Postdi piercing » 04/04/03 13:48

KID.... troppe domande!! ;-))

non ho tempo di raccontarti un anno e passa di prove fatte su questa cosa... per esperienza personale ti dico "lascia perdere"... è inutile e rischi di fare peggio... alla fine chissene frega di quel messaggio... se proprio ti serve di salvare i dati... fallo e basta... usa un cookie... fai quello che vuoi... ma tanto la [x] non la intercetti... (e sinceramente odio i messaggi di conferma... perchè devo usare due click quando ne posso fare solo uno??)

per il resto non ho davvero tempo di darti un'occhiata più approfondita al codice... diciamo che ad occhio la cosa che mi appare è che ci sono troppe ripetizioni...
ricorda che javascript è un linguaggio client.... quindi più è breve il codice che scrivi, più veloce è il caricamento della pagina... cosa generalmente molto apprezzata dall'utente...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Precedente

Torna a Discussioni


Topic correlati a "Questionario online: NON funzionante (?)":


Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti