Visualizzazione dei risultati da 1 a 5 su 5

Discussione: AJAX e ASP

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209

    AJAX e ASP

    ciao a tutti...
    devo risolvere un problema di questo tipo:
    ho tre campi di input (id, password e nominativo)
    I primi due campi sono digitati dall'utente e mi servono per recuperare in tempo reale il nominativo che dovrei leggere da una tabella del db.
    Ho provato a utilizzare ajax ma con scarsi (ovviamente per mie incapacità) risultati.
    Avete qualche suggerimento ?
    Grazie in anticipo.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Popoli il campo in querystring, ricaricando la pagina se invece lo devi per forza fare in ajax http://javascript.html.it/guide/leggi/95/guida-ajax/ qui trovi tutto spiegato perfettamente.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Premetto che il sito consigliato è ottimo e va letto. Dopo di che, o ci si fa una propria funzione ajax, o se ne sceglie una valida dalla rete.
    Fra quelle che ci sono in rete, a me piace molto jquery. E con quella libreria che ti faccio vedere un semplicissimo esempio.

    pagina html che fa una richiesta ad una pagina asp tramite ajax
    codice:
    <!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></title>
        <script type="text/javascript" src="../js/jquery/jquery-1.2.6.pack.js"></script>
    
    <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    function password_onblur() 
    {
        //pagina asp che gestisce la risposta.
        //il parametro comando_ajax mi serve per parametrizzare più risposte
        var url = "a.asp?comando_ajax=1";
        
        //questi sono i dati da passare via post
        var dati = {id_impiegato:$("#id_impiegato").val(), password:$("#password").val()};
        
        //richiesta ajax
        $.ajax({url:url, data:dati, type: 'post', success:callback, error:onerror});
        function callback(data, textStatus)
        {
            //in data ho la risposta e ne faccio quello che voglio
            //qui la metto dentro il div
            $("#div1").html(data);
        }
        
        //in caso di errore mostro un alert
        function onerror(XMLHttpRequest, textStatus, errorThrown)
        {
            alert("Errore richiesta ajax");
        }
    
    }
    
    // ]]>
    </script>
    
    </head>
    <body>
        <label for="id_impiegato">Id impiegato</label>
        <input id="id_impiegato" type="text" />
        
    
    
        <label for="password">password</label>
        <input id="password" type="password" onblur="return password_onblur()" />
        
        <hr />
        <div id="div1"></div>
    </body>
    </html>

    la pagina asp non la mostro perchè ne saprai tu meglio di me. Ho fatto solo una paginetta semplice semplice che ha lo scopo di far vedere come gestisco la risposta.
    codice:
    <%
    dim id_impiegato, password, comando_ajax
    
    'controllo se è una richiesta ajax
    comando_ajax = trim(request("comando_ajax"))
    
    'se lo è, faccio quello che devo e restituisco la risposta
    if comando_ajax = "1" then
        id_impiegato = trim(request("id_impiegato"))
        password = trim(request("password"))
        
        'questa è la risposta da passare alla richiesta ajax
        response.Write("id_impiegato: " & id_impiegato & ", password: " & password )
        response.End
    end if
    
    %>
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209
    Grazie delle risposte,
    io nel frattempo sulla rete avevo trovato una soluzione che ho adattato alle mie esigenze che è la seguente:

    File ASP che contiene due campi di input uno dei quali richiama attraverso l'evento ONKEYUP la libreria AJAX.JS

    <script type="text/javascript" src="ajax.js"></script>

    <form>
    <div style="margin-left:2px " class="gray_light small">Matricola
    <input type="text" maxlength=20 size=20 style="width:120px; height:18px; font-family:tahoma; font-size:11px; margin-left:58px" name=idutente onkeyup="Richiesta(this.value)">
    </div>

    <div style="margin-left:2px " class="gray_light small">Password
    <input type="password" maxlength=20 size=20 style="width:120px; height:18px; font-family:tahoma; font-size:11px; margin-left:50px" name=password>
    </div>

    </form>

    <div id="risultati"></div>


    Libreria AJAX.JS che richiama il file ASP che restituisce il terzo campo di input "Utente"

    var XMLHTTP;

    function Richiesta(stringa)
    {
    if (stringa.length > 0)
    {
    var url = "login.asp?id=" + stringa.toUpperCase();
    XMLHTTP = QualeBrowser(GestioneStato);
    XMLHTTP.open("GET", url, true);
    XMLHTTP.send(null);
    }
    else
    {
    document.getElementById("risultati").innerHTML = "";
    }
    }

    function GestioneStato()
    {
    if (XMLHTTP.readyState == 4)
    {
    var R = document.getElementById("risultati");
    R.innerHTML = XMLHTTP.responseText;
    }
    }

    function QualeBrowser(QualeBrowser)
    {
    if (navigator.userAgent.indexOf("MSIE") != (-1))
    {
    var Classe = "Msxml2.XMLHTTP";
    if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
    {
    Classe = "Microsoft.XMLHTTP";
    }
    try
    {
    OggettoXMLHTTP = new ActiveXObject(Classe);
    OggettoXMLHTTP.onreadystatechange = QualeBrowser;
    return OggettoXMLHTTP;
    }
    catch(e)
    {
    alert("Errore: l'ActiveX non verrà eseguito!");
    }
    }
    else if (navigator.userAgent.indexOf("Mozilla") != (-1))
    {
    OggettoXMLHTTP = new XMLHttpRequest();
    OggettoXMLHTTP.onload = QualeBrowser;
    OggettoXMLHTTP.onerror = QualeBrowser;
    return OggettoXMLHTTP;
    }
    else
    {
    alert("L'esempio non funziona con altri browser!");
    }
    }



    Il file ASP richiamato dalla libreria AJAX


    <%@LANGUAGE="VBSCRIPT"%>
    <HTML>
    <HEAD></head>

    <div style="margin-left:2px " class="gray_light small">Utente
    <%
    if Request.QueryString("id") > 0 then
    %>

    <%
    Dim id
    id = Request.QueryString("id")
    Call APRI()
    rs.Open "SELECT * FROM T_utenti WHERE id = " & id, cn, 1
    With Response
    If rs.EOF Then
    .Write("Nessun risultato!")
    Else
    %>
    <input type="text" maxlength=30 size=30 readonly="readonly" value="<%=rs("utente")%>" style="width:120px; height:18px; font-family:tahoma; font-size:11px; margin-left:50px" name=utente>
    </div>


    <%
    End If
    End With
    Call CHIUDI()
    else
    %>

    <%
    end if
    %>

    </HTML>


    Ora il mio problema è che dopo il campo Utente dovrei inserire altri due campi editabili, una select ed un campo di input.
    Ho provato ad inserire del codice dopo il tag </div> e prima dell'istruzione End if del file asp
    ma senza risultato nel senso che non li visualizza.

    Ecco il codice inserito


    <div style="margin-left:2px ">Reparto
    <select style="font-family:tahoma; font-size:11px; margin-left:62px " name="reparto" id="Reparto" onchange="document.getElementById('Desc').value=th is.options[this.selectedIndex].value">
    <%
    dim RSReparti
    set RSReparti = Server.CreateObject("ADODB.RECORDSET")
    RSReparti.ActiveConnection=Objconn
    RSReparti.Open("Select * from T_Reparti")
    Response.Write("<option selected>Seleziona un valore</option>")
    while not RSReparti.EOF
    Response.Write "<option value=""" & RSReparti(2) & """>" & RSReparti(1) & "</option>" & vbcrlf
    RSReparti.movenext
    wend
    RSReparti.close
    set RSReparti=nothing
    %>
    </select>
    </div>
    <div style="margin-left:2px " class="gray_light small">Descrizione
    <input type="text" maxlength=30 size=30 readonly="readonly" style="width:120px; height:18px; font-family:tahoma; font-size:11px; margin-left:43px" id="Desc" name="descrizione">
    </div>



    Potete aiutarmi ?

    Scusate se ho inserito codice asp ma l'argomento è border line e mi risultava difficile spiegarmi senza inserire il codice.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209
    ho risolto inserendo i due campi (select ed input) dopo l'istruzione <div id="risultati"></div>, nel primo file asp che richiama la libreria ajax

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.