Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Funzione da ASP a Javascript

    Salve, poiché ho da pochissimo avuto approccio con Javascript, chiedo a qualcuno di voi come posso fare per tradurre in Javascript la seguente funzione che ho scritto in ASP.

    Ecco la funzione:

    <%
    Public Function QualeProvincia(sDefault, oConn)
    sDefault = UCase(Trim(sDefault))
    sSQL = "SELECT idProvincia, sigla FROM tblProvincie ORDER by sigla ASC"
    Set RS = oConn.Execute(sSQL)
    QualeProvincia = - 1
    DO UNTIL RS.EOF
    IF sDefault = Trim(RS(1).Value) THEN
    QualeProvincia = RS(0)
    QualeProvincia = int(QualeProvincia)
    exit Function
    END IF
    RS.movenext
    LOOP
    RS.Close
    Set RS = Nothing
    End Function
    %>

    La funzione dovrà, poi, essere richiamata all'interno di una select inserita in un form con un onchange.

    Grazie a chi vorrà aiutarmi.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    personalmente fatico a dare un senso alla tua richiesta:
    come si puo' tradurre qualcosa dall' asp a javascript?
    parliamo di linguaggi ben diversi, con aree di applicazione ben distanti fra loro

  3. #3
    E' da un po' di tempo che mi capita una cosa un po' strana...
    Dal momento che chiedo aiuto per qualcosa cui non so arrivarci, tempo due o tre ore che ho risolto l'empasse.
    Sono riuscito a scrivere la funzione ASP in javascript, e funziona...

    Comunque grazie per la risposta...

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Goldenhawk2007
    E' da un po' di tempo che mi capita una cosa un po' strana...
    Dal momento che chiedo aiuto per qualcosa cui non so arrivarci, tempo due o tre ore che ho risolto l'empasse.
    Sono riuscito a scrivere la funzione ASP in javascript, e funziona...

    Comunque grazie per la risposta...
    perchè non ce la fai vedere?
    Ciao
    Pietro

  5. #5
    incollo la funzione che ho trascritto.
    In verità non l'ho ancora provata.
    Nel caso ci siano errori, visto che sicuramente sei un veterano in questo linguaggio, ti pregherei di farmeli notare.
    (è praticamente da pochissimo che mi sono cimentato nel web authoring, provenendo da ambienti di sviluppo stand-alone)

    La funzione:

    <script language="javascript" runat="server">
    function QualeProvincia(sDefault)
    conn=Server.CreateObject("ADODB.Connection");
    conn.Open(NetLoginDSN);
    RS = Server.CreateObject("ADODB.Recordset");
    sSQL = "SELECT idProvincia, sigla FROM tblProvincie ORDER by sigla ASC";
    RS.Open(sSQL, conn);
    QualeProvincia = - 1;
    while (!RS.EOF);
    {
    if (sDefault == RS(1));
    {
    QualeProvincia = RS(0);
    exit function;
    };
    RS.movenext();
    };
    RS.Close();
    conn.Close();
    end function
    </script>

    Ciao

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    questo funziona
    codice:
    <%@ Language=javascript %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Pagina senza titolo</title>
    </head>
    <body>
    <div><%=QualeProvincia("ca") %></div>
    
    </body>
    </html>
    
    <script runat="server" language="javascript">
    function QualeProvincia(sigla)
    {
        var conn = Server.CreateObject("adodb.connection");
        conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DATI\\test\\test.mdb;Persist Security Info=False");
        var rs = Server.CreateObject("adodb.recordset");
        var sql = "select * from province where sigla = '" + sigla + "' order by sigla asc";
        rs.Open(sql, conn, 0);
        var result = "";
        if(rs.EOF && rs.BOF) 
            result = "Nessuna provincia trovata";
        else
            result = rs("nome").Value;
        
        rs.Close(); rs = null;
        conn.Close(); conn = null;
        
        return result;
    }
    
    </script>

    ma il problema è che è un argomento che riguarda asp e non javascript lato client. Ciao
    Pietro

  7. #7
    sì, in pratica ci stavo lavorando ancora...
    Mo' cerco di farmi capire perché avevo bisogno di questa funzione.
    Ho cercato, da un input di un form di richiamare la funzione ASP tramite onchange, ma non ne ha voluto sapere. Mi sono detto: "Vuoi vedere che è perché la funzione dovrebbe essere in javascript ??".
    In pratica nel form ho, in cascata, prima un input che chiede all'utente la provincia e nel quale devo inserire il risultato della function tramite onchange; la select che viene subito dopo, è un drop-down dei comuni che appartengono alla provincia indicata nell'input precedente.
    Se hai esperienza di questo genere e l'hai risolta in modo più elegante, fammelo sapere.

    Ciao e grazie di esserti messo a disposizione

  8. #8
    Ho modificato la funzione (non nella sostanza) in questo modo:

    <script runat="server" language="javascript">
    function QualeProvincia(sDefault, oConn)
    {
    var RS;
    var sSQL;
    var result;

    RS = Server.CreateObject("adodb.recordset");
    sSQL = "select idProvincia, sigla from tblProvincie where sigla = '" + sDefault + "' order by sigla asc";
    RS.Open(sSQL, oConn, 0);
    result = "";
    if(RS.EOF && RS.BOF)
    result = 0;
    else
    result = Number(RS("idProvincia").Value);

    RS.Close(); RS = null;
    oConn.Close(); oConn = null;
    return result;
    }
    </script>

    Ora, mi chiedo cosa sia meglio fare:
    Io ho questo form:

    <form id="Form1" name="Form1" method="post action="questapagina.asp"

    <input id="provnasc" name="provnasc" value="<%=sProvnasc%>">
    <select size="1" id="Luogo_nascita" name="Luogo_nascita"><% MenuComuni sLuogonasc, sProna, oConn %>

    </form>

    // in "sProna" dovrebbe andare il valore rrestituito da "QualeProvincia()" che sarebbe l'ID nella tabella "tblProvincie"

    // Adesso:
    // poiché non posso fare un refresh della pagina
    // volendo usare Prototype
    //
    onchange="QualeProvincia(Form[Form1].Element.getValue[sProvnasc], oConn)"

    onfocus="QualeProvincia(Form[Form1].Element.getValue[sProvnasc], oConn)"
    //
    //
    // quale delle due istruzioni ??
    // sulla input (la prima) o sulla select (la seconda) ??

    L'ho fatta lunga ??

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Forse dimentichi un particolare... come in tutti i sistemi client-server una volta che il server invia la pagina al client non ha modo di accorgersi (anzi diciamo che non gli interessa) se la stessa e' stata ricevuta, se l'utente chiude il browser, o se il valore nella select cambia... i due ambienti sono totalmente separati e dialogano sempre e solo per iniziativa del client.

    Se poi la comunicazione avviene per vie normali (invio del form, richiesta di nuova pagina) o con il piu' recente AJAX e' scelta progettuale... e le soluzioni possibili differiscono.

    ciao

    ps: in ogni caso non si puo' richiamare una funzione runat=server con quella sintassi (veramente fantasiosa nei suoi elementi, oserei dire... e nemmeno con qualche altra almeno sintatticamente corretta) : occorre stabilire una comunicazione client-server con i metodi che ti ho accennato.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    http://forum.html.it/forum/showthrea...78#post9763778

    Nel link c'è una vecchia discussione molto simile :master: ma, a dirla in tutta franchezza, se non studi un poco le basi, non ti riuscirà neanche il copia e incolla.

    ps. per quanto riguarda quello detto da br1, purtroppo so per esperienza che è un problema che assilla molti principianti, me compreso al suo tempo , perciò, prima di affrontare ajax o altre ricercatezze simili, ti consiglio di partire dalle basi, con un buon libro su asp e javascript. Ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.