Newsgroup: it.comp.lang.javascript
Titolo: problema passaggio parametri a location.href

ciao a tutti
mi sono accorto di questa cosa bruttissima: se io ho una pagina con una
casella di testo e un bottone per
eseguire una location.href passando il contenuto della text ad un altra
pagina, ho notato che se inserisco un "+"
se lo mangia!!
vi posto il codice
****************************
pag 1.asp
<html>
<body>
<input type="Text" id="a" name="a">
<input type="Button" value="schiaccia" onclick="funz();">
</body>
</html>
<script>
function funz(){
 var p = document.all.a.value;
 alert(p + " - " + escape(p));
 location.href="/2.asp?p=" + escape(p);
}
</script>
*********************************
pag 2.asp
<html>
<body>
<%
dim p
p=request.querystring("p")
response.write (p)
%>
risultato:
<input type="Text" value="<%=server.htmlencode(p)%>">
</body>
</html>
*************************************
avete idee?
ci sono altri caratteri che fanno questo scherzo?
grazie
Daniele

 ha scritto nel messaggio news:3EF6B02B...@tiscalinet.it...



non va!

ragazzi, aiutatemi perchč č un bel casino se devo buttare tutto quel
codice... :-(((

 Daniele
Prego
Gianni

ho usato document.all e tutto il resto x comoditą dell'esempio..
sto utilizzando chiamate standard dove riesco... e cmq l'uso di ID non č
sbagliato... almeno credo...
ciao
Daniele

 codice... :-(((
Il carattere + non viene "escapato" perche' e' un carattere valido che 
puo' essere inserito negli URL.
Se hai la necessita', fatti un replace e chi s'e' visto s'e' visto, no?
var sz="77+11=88";
alert(escape(sz).replace(/\+/g,"%2B"));
Dovrebbe andare. Guarda un po' tu, ed in caso fammi sapere.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 Non credo, dovrebbe essere l'unico con questa ambiguita'...
Non c'e' alcuna ambiguita'.
Basta studiare. :)



quindi mi stai dicendo che prima fare la chiamata location.href (o quel che sia)
devo sostituire a manina
questi caratteri (o solo il + visto che forse č l'unico che rogna)?
quali altre soluzioni ci sarebbero? non mi sembra molto intelligente non aver
funzioni per fare una cosa
del genere (e che non viene gestita in automatico).
piů che altro, trovarmi nell'altra pagina che il + č stato sostituito da spazio
(come da specifiche) non mi piace molto... nč tanto meno farmi ripassare il
codice.... :-((

 Dovrebbe andare. Guarda un po' tu, ed in caso fammi sapere.
+ sotto ho risposto prima che mi arrivasse questo tuo post...
cmq, ok... come sospettavo devo farlo a manina... che bacati!
ok grazie, come sempre...
PS: guarda che ora è estate.. se scappi quì a milano c'è ancora il
cappuccio+brioches... :-)

PS2: ma dici di sostituire a mano " * @ - _ + . /  " tutti i caratteri
compresi tra " " ?

 (come da specifiche) non mi piace molto..
Beh, visto che lo sai.. che queste sono le specifiche.. mi spieghi un 
po' cosa c'e' che non ti torna? :)



che anche se è un carattere valido, speravo che escape facesse come serve a me :-DD
e poi pure m$ ci è arrivata: infatti server.urlencode conterte il + in %2b ... è lato
server, però lo fa :-))

 compresi tra " " ?
Boh, fai te.. Dipende che tipo di dati puo' inserire l'utente.
Io sostituirei il + ed il /, il resto non dovrebbe causarti alcun 
problema.


 server, però lo fa :-))
Lato server non submitti :)



già...
farò così:
<input type="text" value="<%= server.urlencode("questo testo + lo scrivo io") %>"
READONLY>
così l'utente non modifica il testo e viene inviato giusto :-DDDDDDDDDDDDDDDDDD

 così l'utente non modifica il testo e viene inviato giusto :-DDDDDDDDDDDDDDDDDD
Oh mamma. :D


 Basta studiare. :)
Lo sai che colgo sempre calorosamente i tuoi inviti :)

 Lo sai che colgo sempre calorosamente i tuoi inviti :)
Beh, direi proprio di no visto da quanto si sta andando avanti con 
queste storie. :)
.. Ma sono ottimista. :)
