PDA

View Full Version : [Javascript] Dove sbaglio?


bizzu
15-04-2004, 19:43
Scusate se vi sottopongo un problema un po' banale, ma non riesco a capire dove sbaglio:

if((Request("tipo")) = "BOOKMARK")
header_add(1, 2);
else header_add(1, 3);

tipo è il nome di un radio button nella pagina precedente.
É sbagliata la sintassi della clausola dell'if, mi dà un errore "Previsto oggetto".

cionci
15-04-2004, 23:35
if((Request("tipo")) == "BOOKMARK")

Ma per cosa stai usando JavaScript ? Per ASP ?

bizzu
16-04-2004, 09:03
Sì, lo sto usando in una pagina ASP.
Mi ero dimenticato un = effettivamente, ma anche se lo metto mi dà lo stesso errore!

cionci
16-04-2004, 09:47
if(Request("tipo") == "BOOKMARK")

Così ? Non mi ricordo se in JavaScript si può fare un confronto diretto fra stringhe...

bizzu
16-04-2004, 10:11
Stesso effetto...
Ho provato a mettere "BOOKMARK" == "BOOKMARK" e funziona, quindi credo che il confronto tra stringhe si possa fare.
Ne deduco che chi dà problemi è Request("tipo")...:rolleyes: :muro:

cionci
16-04-2004, 10:25
Se dai in output Request("Tipo") cosa ottieni ?

bizzu
16-04-2004, 10:30
Ottengo BOOKMARK, anche nelle query funziona.
Request("tipo") aggiunto ad una stringa (col +) ritorna effettivamente il suo valore, ma quando lo si va a confrontare con una stringa viene trattato come oggetto e dà errore.
Ho provato anche una cosa un po' "javistica":
if(("" + Request("tipo"))=="BOOKMARK")
header_add(1, 2);
else header_add(1, 3);
ma ovviamente non funziona :(

Ho notato che invece usando VbScript il confronto si può fare, ma io devo chiamare una funzione Javascript...

cionci
16-04-2004, 10:35
Azz...io uso VBScript in ASP...ora mi informo...

bizzu
16-04-2004, 11:28
Risolto!! :winner:
Ho scoperto che in Javscript il confronto si può fare tra una stringa e il valore di un input di un form. Il mio unico problema era che il form veniva dopo nella pagina; l'ho risolto mettendo, prima dello script incriminato, un altro script in vbscript che scrive nella pagina un piccolo form con solo l'input che mi serviva (ovviamente hidden).
<%
Response.Write("<FORM name='type' method='post' action='' >" & Chr(13) & Chr(10))
Response.Write("<INPUT type='hidden' name='tipo'value=""" + Request("tipo")+ """>")
Response.Write("</FORM>" & Chr(13) & Chr(10))
%>

<SCRIPT language="JavaScript">
if(type.tipo.value == "BOOKMARK")
header_add(1, 2);
else header_add(1, 3);
</SCRIPT>
Ora funziona. Grazie mille per l'aiuto cionci! :D

cionci
16-04-2004, 11:41
Mmmmhhh...quello è un confronto fatto dal lato client...non è in ASP...

bizzu
16-04-2004, 11:51
Può creare dei problemi? tanto la funzione serve solo per scrivere il "titolo" della pagina, in base ad una scelta che l'utente fa nella pagina precedente...