Newsgroup: it.comp.lang.javascript
Titolo: Variabile globale, dove sto sbagliando?

Probabilmente è un problema stupido, ma data anche l'ora non riesco a
saltarci fuori.
allora in breve
------------------------------------------
<html>
<head>
<script>
var pinco;
function pallino() {
pinco = 2;
}
</script>
</head>
<body>
<script>pallino();</script>
<div>oggi sono <script>document.write(pinco);</script> giorni</div>
</body>
</html>
------------------------------------------
In questo modo non si dovrebbe dichiarare pinco come variabile globale
e poi vederla stampata nel div con il valore di 2?
Per quale motivo mi dice che è undefined?
Dove sbaglio?

 saltarci fuori.
[CUT]
esatto ... forse l'ora tarda. Ricontrolla oggi, perché quello che scrivi 
non è vero (così per curiosità ho copiaincollato il tuo codice, scrive 
correttamente "2", non "undefined").

 correttamente "2", non "undefined").
Ho capito dove sbagliavo... giustamente.
In pratica ho creato un div nascosto (display:none) che si attiva
quando si preme un pulsante, la funzione che determina il
display:block del div assegna anche il valore alla variabile.
Ovviamente però il div viene scritto prima che la funzione assegni la
variabile, quindi rimane undefined.
Come posso fare per fare aggiornare questo valore con javascript (non
voglio usare sistemi lato server)?
Vorrei evitare di usare un form (potrei mettere un input text e poi
aggiornare quello, ma non sarebbe molto elegante.
Consigli?
grazie

 aggiornare quello, ma non sarebbe molto elegante.
io non ho capito.
window.onload?

Il div viene scritto nella pagina anche se è nascosto (hidden) o
sbaglio?
Il pulsante cambia semplicemente lo stato display da hidden a block,
ma non è che fa "interpretare" il div che è già stato caricato dal
client, almeno così mi pare.
Provo a fare un esempio al volo
------------------------------------------
<html>
<head>
<script>
var pinco;
function pallino() {
document.getElementById('prova').style.display="block";
pinco = 2; }
</script>
<style type="text/css">
div#prova{display: none}
</style>
</head>
<body>
<input type="button" onClick="pallino();" value="CLICCA" />
<div id="prova">oggi sono <script>document.write(pinco);</script>
giorni</div>
</body>
</html>
------------------------------------------
consigli?
ciao

 div#prova{display: none}
Beh, qua lo stai nascondendo, non hai altri tasti per visualizzarlo, 
quindi direi tutto ok ... ma sembra di no.

 div è visibile o meno ...
devo creare una pagina che permette di acquistare dei prodotti, ogni
volta che un utente clicca su un prodotto e sceglie la quantità, si
deve visualizzare vicino al modulo il riepilogo d'ordine (che
normalmente non è visibile). Ovviamente i dati contenuti nel riepilogo
d'ordine si devono aggiornare ogni volta che un utente cambia la
quantità.
Questo lo si può fare modificando il value di un campo in un form, ma
io non volevo utilizzare un input di testo.
Comunque ho trovato come risolvere, usando la proprietà innerHTML, in
questo modo riesco con una funzione a cambiare il contenuto di un div.
ciao

 questo modo riesco con una funzione a cambiare il contenuto di un div.
Ecco, era questo che intendevo: se dicevi che dovevi modificare il 
contenuto di un div ti avremmo aiutato prima ... era proprio la logica 
che non mi tornava.
Comunque sia, hai risolto, bene.

 Comunque sia, hai risolto, bene.
eh sì... non sono stato chiarissimo.
Grazie per avermi risposto.
ciao