Newsgroup: it.comp.lang.javascript
Titolo: getElementById e ASP

Ciao a tutti , vi chiedo un aiuto perchè non riesco a far funzionare questa
situazione.
Praticamente questa è una pagina che manda a tutto un database delle e-mail
e solo dopo al termine di questa orerazione fa uscire un messaggio di avviso
dell'avvenuta spedizione.
Come potete vedere qui sotto, in ingresso nascondo la tabella del messagio
(style="display:none">), poi quando l'azione di spedizione è terminata
vorrei far uscire il messaggio ma non lo esegue? Creo via asp la riga che
richiama un comando JS...
Dove sbaglio? Grazie
Alen
--------------
<table width="100%" border="0" cellpadding="0" cellspacing="0" id="TBLHide"
style="display:none">
   <tr>
       <td height="40" align="center" class="head"><br>
        Il processo di spedizione è terminato con successo.<br>
        Il messaggio è stato spedito a tutto il database
    </td>
  </tr>
</table>
....
<%
...
CODICE ASP
      ObjRsMailingList.Close
      Set ObjRsMailingList = Nothing
      closeDBconn 'funzione apertura connessione
      Response.Write("<script
langauge=""JavaScript"">document.getElementById.(""TBLHide"").style.display=
""block""</script>")
     end if
     %>

 richiama un comando JS...
Ma scusa perche' ti complichi la vita?
Non puoi semplicemente visualizzare la tabella dopo aver scritto nel DB?
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
Per rispondere: togli il PUNTO e metti un .


Le doppie virgolette non sono molto "comprensibili" per gli
interpreti/compilatori...
Prova cosģ:
Response.Write("<script
langauge='JavaScript'>document.getElementById.('TBLHide').style.display='blo
ck';</script>")
Poi, non so per quale ragione, ho notato che a volte (sempre?) prima di
poter accedere in scrittura a delle proprietą di oggetti bisogna "salvare"
il riferimento all'oggetto in una variabile, in questo modo:
var el=document.getElementById('TBLHide');
el.style.display='block';
Quindi se non funziona la prima... prova la seconda.
--
Lieutenant
Look at 
www.jargoncode.it

 el.style.display='block';
Nessuna ragione particolare, semplicemente per una migliore 
leggibilita'/manutenzione del codice :-)
Specialmente se sullo stesso oggetto bisogna applicare 
metodi/proprieta' differenti consecutivamente


 dell'avvenuta spedizione.
La risposta di Liutenant mi ha fatto venire in mente una cosa, stai 
sicuramente commettendo un banalissimo errore: fai accedere ad un 
oggetto prima ancora che sia (ben) creato dal browser.
Ricorda che la pagina viene mandata al browser DOPO che il codice ASP 
e' stato eseguito, quindi per il browser quelle righe ASP non esistono, 
ed il browser si trova ad eseguire del codice JS su un oggetto che non 
ha ancora "finito" di creare.
A maggior ragione ti consiglo di seguire il suggerimento che ti ho dato 
qualche ora fa.


 ha ancora "finito" di creare.
Ciao e Grazie ad entrambi per l'aiuto...ma vi faccio delle precisazioni per
meglio capire.
1) Non posso far scrivere il mex nella pagina perchè con il codice ASP
eseguo un ciclo per la spedizione delle E-mail e se lo metto in mezzo alle
tabelle non mi fa uscire la chiusura di tutta la struttura della pagina fino
alla sua fine (quindi si vedrebbe un pezzo di pagina e poi al termine della
spedizione salta fuori tutto...ma ci può mettere anche 1 ora...)
Per questo ho messo response.buffer = false e il codice ASP del ciclo alla
fine del mio TAG </HTML> in modo che mi crea la pagina la chiude tutte ed
esegue il mio codice.
2) Ho già un codice JS nell'ASP che mi aggiorna dinamicamente un campo imput
di un form per il conteggio dinamico dei messaggi in uscita, quindi Riccardo
non sono daccordo con la tua teoria che ASP viene processato prima e poi
passa tutto all'HTML...è così se non si mette il buffer=false, in questo
caso viene processato nell'ordine della pagina.
---------------------
<%
     if (FromWhere = "127.0.0.1") and Request.Form("Maschera") = 1 Then
      Do While NOT ObjRsMailingList.EOF
       EmailSendCounter = EmailSendCounter + 1
       'Update the text box displaying the number of e-mails sent
       Response.Write("<script
langauge=""JavaScript"">document.MexSend.SendMail.value="&EmailSendCounter&"
</script>")
       Dim objMail
       Set objMail= Server.CreateObject("CDONTS.NewMail")
       objMail.From = "Mailfit"
       objMail.To = StrEmailAddress
       objMail.Subject = StrSubject
       objMail.Body = strEmailBody&vbCrLf&vbCrLf&StrFooter
       'S(0=HTML 1=Text)
       objMail.BodyFormat = 1
       '(0=MIME 1=Text)
       objMail.MailFormat = 0
       '(0=Low, 1=Normal, 2=High)
       objMail.Importance = 1
       objMail.Send
       'Move to the next record in the recordset
       ObjRsMailingList.MoveNext
      Loop
      Set objMail = Nothing
      ObjRsMailingList.Close
      Set ObjRsMailingList = Nothing
      closeDBconn 'funzione apertura connessione
      Response.Write("<script langauge=""JavaScript"">Var
TBLHide=document.getElementById('Hide');
TBLHide.style.display='block'</script>")
     end if
     %>
----------------
Con il blocco di codice in questa maniera mi dice c'è un errore alla riga
218...è previsto un ";"???
Perchè?
Come potete vedere la funzione JS in ASP delle prime righe funziona e non mi
da nessun problema??
Spero mi posiate aiutare e comunque grazie.
A

 TBLHide.style.display='block'</script>")
Ovviamente questa è la riga 218...e la mia tabella che in entrata è nascosa
ha <ID="Hide"....>

 Perchè?
var non Var.
Javascript e' case-sensitive.
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)




 accedere.
Mi sembra molto strano. Se specifichi il browser, e magari riesci a 
riprodurre le condizioni in cui ti capita, fai pure un fischio che sono 
curioso di darci un'occhiata. :)
