Newsgroup: it.comp.lang.javascript
Titolo: errore su passaggio valore ad opener

ciao a tutti,
sto cercando di avere una finestra principale con alcune textbox.
per test ho messo un link che apre una nuova finestra dove si possono
effettuare delle ricerche, a ricerche svolte appare un link che dovrebbe
portare il valore trovato in una delle textbox, questo avviene ma ho un
problema.
praticamente il trasferimento del dato sulla textbox avviene correttamente
solo quando il dato non inizia per 0.
se il dato da trasferire inizia per zero noto degli strani comportamenti
nella textbox, valori sconclusionati, ecco i codici:
opener:
<form name='userinfo' id='userinfo' action='index.php' method='post'>
<input type='text' class='text' name='codice_cliente' id='codice_cliente'
size='26' maxlength='60' value='' />
blabla
<a href="#"
onClick="javascript:window.open('minicercacliente.php','');">finestra di
test</a>
</form>
---
finestra di test:
nel tag head lo script:
function snd(tmp){
opener.document.userinfo.codice_cliente.value = tmp;
}
nel body il link con il js
<a href='#'
onclick=\"snd(".$fuser->getVar("rf_clienti").")\">".$fuser->getVar("rf_clien
ti")."</a>
$fuser->getVar("rf_clienti") è un valore numerico che può avere valori che
iniziano con zero, i \ sono solo degli escape per php.
quando il paramentro di snd inizia per zero come 002000 dentro
codice_cliente dell'opener appare per esempio 1024, se è 003000 appare 1536
e così via, a cosa può essere dovuto questo comportamento?
grazie,
kain

 ha scritto nel messaggio
news:gydKb.52915$_P.21...@news4.tin.it...

è dovuto al fatto che il numero 002000, iniziando per 0, viene interpretato
come espresso in base 8, infatti 2000 in ottale = 1024 in decimale
per cui nella funzione snd ti conviene rimouvere gli zeri in testa prima di
inviare il dato all'opener
--
Pela

 inviare il dato all'opener
Oppure fare un parseInt(numero,10);

 ha scritto nel messaggio
news:btc0lo$5gpun$1...@ID-147253.news.uni-berlin.de...

grazie, mi sono documentato e ho visto questo aspetto poco consono alla mia
situazione.
purtroppo nel mio database sono effettivamente presenti record che iniziano
per 0, quindi dovrei mantenerli inalterati:
parseInt(parseFloat(<my text value>))
parseInt(<my text value>, 10)
"strippano" gli zeri e lasciano solo il numero intero finale, come posso
fare per mantenere anche gli zeri?
oggi è l'ultimo giorno disponbile poi dovrei presentare il progetto.. sob.
grazie,
kain


risolto aggiungendo degli '' alla stringa:
<a href='#'
onclick=\"myimage_onclick('".$fuser->getVar("rf_clienti")."');\">".$fuser->g
etVar("rf_clienti")."</a>
grazie a tutti,
kain

 etVar("rf_clienti")."</a>
Che e' il metodo corretto. Infatti precedentemente tu non passavi una
stringa (che era il codice cliente a quanto ho capito) ma passavi il valore
come se fosse un numerico.. era quindi ovvio che ti facesse le conversioni
del caso. In sintesi tu avevi:
<a href='#' onclick="myimage_onclick(01234);">ref clienti</a>
Mentre adesso hai:
<a href='#' onclick="myimage_onclick('01234');">ref clienti</a>
Che e' la versione "logicamente" corretta.
Complimenti per aver risolto da solo il tuo problema e aver postato la
soluzione per chi, in futuro, potrebbe avere un problema simile al tuo, e
si affidera' agli archivi dei newsgroup per trovare risposta :)
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)