Newsgroup: it.comp.lang.javascript
Titolo: Richiamare una sub vbscript da javascript

Ciao !
Ho una pagina ASP. Ho in questa pagina una sezione javascript; alla fine
di una serie di istruzioni, voglio che richiami una Sub scritta in
Vbscript. Il codice in js che la richiama è nomesub(); e sembra
richiamarla correttamente perchè in Public Sub aggiorna() (la sub in
vbscript) ho inserito per provare un msgbox che viene eseguito. Ora, però,
vorrei che invece di fare il msgbox, la sub in vbscript mi scrivesse su un
database. Le istruzioni inserite nella sub sono CORRETTE, ma non sono
eseguite. E' come se il controllo non venisse ceduto a vbscript. un errore
è "Necessario oggetto: Server" quando setto la connessione. E' come se
ancora fosse "attivo" il motore js e che non riconosce quindi le parti vb.
Uso i tag di indicazione dello script usato. Come posso fare, se si può
fare ?
Grazie !
Nicola
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 eseguite.
Cadi nel classico tranello in cui cadono molte altre persone agli inizi
della programmazione client/server: Ovvero, non hai ben chiaro che i due
sono processi separati, che agiscono in contesti e tempi separati.
Non c'entra tanto il tipo di script usato.. VBS piuttosto che JS. Il punto
e' che la sub VBS e' uno script server (ASP) che deve aggiornare dei dati su
un database nel server,
mentre la funzione Javascript e' stata scritta lato client.
Quando un client (browser) fa la richiesta di una pagina ASP, il server
prende la pagina ASP, interpreta quello che e' stato scritto nei tag <% %>,
e sputa fuori al client il risultato in HTML.
A quel punto, quando la pagina e' stata finita di "consegnare",
l'interazione Client/Server e' finita. Il protocollo TCP/IP e' difatti
stateless. Per quanto riguarda il server, il client potrebbe essere
sprofondato nelle fosse delle marianne. Potresti anche essere scollegato da
internet. La pagina, adesso, vive di vita propria sul client.
Se chiami quindi una funzione scritta in ASP, per il client non ha alcun
senso. Lui ti da' l'errore perche' si aspetta di trovare quella funzione
nella pagina.. ma, ovviamente, se guardi il source risultante, quella
funzione non esiste.. essendo stata scritta lato server.
Per eseguire un qualsiasi comando lato server, devi necessariamente fare una
nuova richiesta HTTP al server.
Spero di esser stato chiaro.. ma ne dubito :) quindi, se c'e' qualche cosa
che nn ti torna, fischia pure.
--------------------------------
Inviato via 
http://usenet.libero.it

Ecco il fischio !!!
Ok ! 
Grazie Zero ! Sei stato molto chiaro ! Allora..... proviamo a ribaltare
(modifichiamo la prospettiva) la vicenda. Togliamo VBS e pensiamo solo a
JS. Immagino che sia possibile (si, lo so che lo è !), scrivere in un DB
(sql server) usando JS. generalmente, in VBS, uso queste righe di comando,
che "fungono" egregiamente, sia per la connessione che per le istruzioni
di lavoro sulle tabelle. 
dim conn 
dim rs 
dim SQL 
set conn = Server.CreateObject("ADODB.Connection") 
set rs = Server.CreateObject("ADODB.Recordset") 
conn.Open "DSN=nomedsn", "SA", "" (è sql server) 
SQL = "Select * FROM Tabella where ID = 1" 
Set rs = conn.execute(SQL) 
.. e poi ci faccio come detto le varie operazioni. (UPDATE, DELETE ecc
ecc)
Domanda:
Quali sono in JS le istruzioni EQUIVALENTI ? 
runat=server, che significato assume e come/quando va assegnato ?


 runat=server, che significato assume e come/quando va assegnato ?
Quando vuoi usare lo script lato server e non client (ovvero, tutte le varie
istruzioni ASP).
Puoi anche usare <% %> al posto di <script runat=server>, e' equivalente.
Ricordati solo di specificare prima il linguaggio di default (o nei settings
del sito, oppure con <% @language=Javascript %> come prima istruzione).
Per esempio, va usato nello script JS che ho scritto prima come porting
delle tue istruzioni VBS. Se tu provassi ad eseguirlo client, e non server,
ti andrebbe un po' nelle peste.. "Panico! non trovo l'oggetto Server", ti
direbbe il browser :)
