Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Ajax e POST

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348

    Ajax e POST

    Ciao a tutti,

    qualcuno mi sa indicare dove posso trovare un codice di esempio per gestire il passaggio di dati con AJAX in POST? Fino ad ora ho sempre utilizzato il get ed elaborato le richieste con request.querystring in ASP...

    ORa però ho bisogno di inviare dei form più complessi e non riesco a far stare tutto nel qs... e voglio utilizzare il request.form

    Grazie in anticipo.
    Edo

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Ciao,

    grazie mille per il tuo suggerimento... nel frattempo avevo già trovato qua e la qualcosa.... ma non funziona (ammesso che trasmetta veramente i dati).

    Riporto sotto il codice:

    Pagina di invio:

    <input class="bottone" type="button" value="AGGIUNGI" onClick="AddCategory(1,'DOC','loaddiv(\'buildTreeF ileman.asp?category=3\',\'tab0\')');">

    js:

    var http = createObject();

    function createObject() {
    if (!(document.getElementsByTagName || document.all))
    return;
    var ret = null;
    try {
    ret = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
    try {
    ret = new ActiveXObject('Microsoft.XMLHTTP');
    } catch (ee) {
    ret = null;
    }
    }
    if (!ret && typeof XMLHttpRequest != 'undefined')
    {
    ret = new XMLHttpRequest();
    return ret;
    }
    }


    function AddCategory(CurrentID, ItemType,toDoOnEnd)
    {
    var qsajax = "../common/ajax_file_function.asp?action=addcategory&id=" + CurrentID + "&ItemType=" + ItemType + "&toDoOnEnd=" + toDoOnEnd
    ExecAjaxPOST(qsajax);
    }

    function ExecAjaxPOST(qsajax)
    {

    var url = qsajax
    if (http)

    { http.open('post', url, true);
    http.onreadystatechange = handleResponse_dati;
    var str="newCategoryName=" + encodeURIComponent(document.getElementById("newCat egoryName").value)
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http.send (str);
    }
    }

    La pagina ASP ajax_file_function.asp non estrae i valori che, salvo errore, dovrebbero essere disponibili nell'oggetto request.form

    Dove sbaglio???

    Grazie
    Edo

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Perchè cercare o farsi da soli funzioni che già esistono in rete e che oltretutto funzionano magnificamente bene? :master:
    Ti faccio un esempio commentato che fa uso di jquery e asp.
    In pratica spedisco dei valori via get e post. Il server gli legge e li rispedisce al client
    codice:
    <%
    option explicit
    Response.Buffer = true
    Session.LCID = 1040
    
    onLoad
    
    %>
    <!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.3.2.min.js"></script>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    function fai_richiesta_ajax_post()
    {
        //faccio comparire l'indicatore di attesa
        $('#div1').html('[img]../immagini/indicator.white.gif[/img]');
        
        //imposto la pagina da richiamare
        //richiamo pagina corrente e mando pure il parametro per dire al server cosa fare
        var url = "?parametro_ajax=1";
        
        //i dati da spedire sono tutti quelli di form1 più variabile1 di valore1
        var dati = $("#form1").serialize() + "&" + "variabile1=valore1";
        
        //faccio la richiesta ajax al server specificando l'url da richiamare, i dati da spedire,
        //il modo di spedizione, la procedura da eseguire in caso di successo,
        //la procedura da eseguere in caso di errore
        $.ajax({url:url, data:dati, type: 'post', success:callback, error:onerror});
        
        //procedura eseguita in caso di successo
        function callback(data, textStatus)
        {
            //metto l'html ricevuto in div1
            $("#div1").html(data);
        }
        
        //procedura eseguita in caso di errore
        function onerror(XMLHttpRequest, textStatus, errorThrown)
        {
            //cancello il contenuto di div1 e alert di errore
            $('#div1').html("");
            alert("Errore richiesta ajax");
        }
        
        
        
    }
    
    // ]]>
    </script>
    
    </head>
    <body>
        <form id="form1" action="?">
            Fai la richiesta POST
            <hr />
            <input id="Text1" name="Text1" type="text" value="xyz" />
            <input id="Hidden1" name="Hidden1" type="hidden" value="abx" />
            <hr />
            <div id="div1" style="border:4px red solid; width:500px; height:500px; padding:10px;"></div>
        </form>
    </body>
    </html>
    
    <%
    sub onLoad()
        dim parametro_ajax
        parametro_ajax = trim(request.QueryString("parametro_ajax"))
        if parametro_ajax = "1" then
            esegui_procedura_1()
        end if
    end sub
    
    sub esegui_procedura_1()
        ScriviParametri
        response.End
    end sub
    
    %>
    
    <%
    	'--------------------------------------------------------------
    	'scrive i parametri passati come post
    	'--------------------------------------------------------------
    	sub ScriviParametriForm
    		dim f
    		if Request.Form.Count > 0 then
    			Response.Write "<span style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;FONT-WEIGHT: bolder;COLOR: BROWN;FONT-SIZE: 8pt;BACKGROUND-COLOR: white;'>Parametri Form</span>"
    			Response.Write "<table BORDER=1 CELLSPACING=0 CELLPADDING=0 bordercolor='#000000' style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;COLOR: #000000;FONT-SIZE: 10pt;BORDER: black thin none;background:beige;width:0;'>"
    			for each f in  Request.Form
    				Response.Write "<tr><td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & f & "</td>" & "<td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & NullToSpace(Request.Form(f)) & "</td></tr>"
    			next
    			Response.Write "</table>"
    		end if	
    	end sub
    	
    	'--------------------------------------------------------------
    	'scrive i parametri passati come get
    	'--------------------------------------------------------------
    	sub ScriviParametriQueryString
    		dim f
    		if Request.QueryString.Count > 0 then
    			Response.Write "<span style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;FONT-WEIGHT: bolder;COLOR: BROWN;FONT-SIZE: 8pt;BACKGROUND-COLOR: white;'>Parametri QueryString</span>"
    			Response.Write "<table BORDER=1 CELLSPACING=0 CELLPADDING=0 bordercolor='#000000' style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;COLOR: #000000;FONT-SIZE: 10pt;BORDER: black thin none;background:beige;width:0;'>"
    			for each f in  Request.QueryString
    				Response.Write "<tr><td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & f & "</td>" & "<td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & NullToSpace(Request.QueryString(f)) & "</td></tr>"
    			next
    			Response.Write "</table>"
    		end if	
    	end sub
    
    	'--------------------------------------------------------------
    	'scrive i parametri passati form, querystring e cookies
    	'--------------------------------------------------------------
    	sub ScriviParametri()
    		ScriviParametriForm
    		ScriviParametriQueryString
    	end sub
    
    
    	'--------------------------------------------------------------
    	'converte NULL in spazio codificato
    	'--------------------------------------------------------------
    	function NullToSpace(v)
    		if isNull(v) then
    			NullToSpace = ""
    		else
    			if v = "" then
    				NullToSpace = ""
    			else
    				NullToSpace = server.HTMLEncode( v )
    			end if
    		end if
    
    	end function
    
    %>
    Pietro

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Grazie per l tuo script... hai ragione che è meglio usare cose già fatte e di fatto io ho provato ad usare il vecchio script trovato a suo tempo che uso con GET senza problemi... con le modifiche per il POST invece la pagina alla quale invio i dati non li recepisce!!!

    Non capisco proprio dove sbaglio... se magari è un problema della pagina di invio...

    Mah


    Originariamente inviato da pietro09
    Perchè cercare o farsi da soli funzioni che già esistono in rete e che oltretutto funzionano magnificamente bene? :master:
    Ti faccio un esempio commentato che fa uso di jquery e asp.
    In pratica spedisco dei valori via get e post. Il server gli legge e li rispedisce al client
    codice:
    <%
    option explicit
    Response.Buffer = true
    Session.LCID = 1040
    
    onLoad
    
    %>
    <!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.3.2.min.js"></script>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    function fai_richiesta_ajax_post()
    {
        //faccio comparire l'indicatore di attesa
        $('#div1').html('[img]../immagini/indicator.white.gif[/img]');
        
        //imposto la pagina da richiamare
        //richiamo pagina corrente e mando pure il parametro per dire al server cosa fare
        var url = "?parametro_ajax=1";
        
        //i dati da spedire sono tutti quelli di form1 più variabile1 di valore1
        var dati = $("#form1").serialize() + "&" + "variabile1=valore1";
        
        //faccio la richiesta ajax al server specificando l'url da richiamare, i dati da spedire,
        //il modo di spedizione, la procedura da eseguire in caso di successo,
        //la procedura da eseguere in caso di errore
        $.ajax({url:url, data:dati, type: 'post', success:callback, error:onerror});
        
        //procedura eseguita in caso di successo
        function callback(data, textStatus)
        {
            //metto l'html ricevuto in div1
            $("#div1").html(data);
        }
        
        //procedura eseguita in caso di errore
        function onerror(XMLHttpRequest, textStatus, errorThrown)
        {
            //cancello il contenuto di div1 e alert di errore
            $('#div1').html("");
            alert("Errore richiesta ajax");
        }
        
        
        
    }
    
    // ]]>
    </script>
    
    </head>
    <body>
        <form id="form1" action="?">
            Fai la richiesta POST
            <hr />
            <input id="Text1" name="Text1" type="text" value="xyz" />
            <input id="Hidden1" name="Hidden1" type="hidden" value="abx" />
            <hr />
            <div id="div1" style="border:4px red solid; width:500px; height:500px; padding:10px;"></div>
        </form>
    </body>
    </html>
    
    <%
    sub onLoad()
        dim parametro_ajax
        parametro_ajax = trim(request.QueryString("parametro_ajax"))
        if parametro_ajax = "1" then
            esegui_procedura_1()
        end if
    end sub
    
    sub esegui_procedura_1()
        ScriviParametri
        response.End
    end sub
    
    %>
    
    <%
    	'--------------------------------------------------------------
    	'scrive i parametri passati come post
    	'--------------------------------------------------------------
    	sub ScriviParametriForm
    		dim f
    		if Request.Form.Count > 0 then
    			Response.Write "<span style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;FONT-WEIGHT: bolder;COLOR: BROWN;FONT-SIZE: 8pt;BACKGROUND-COLOR: white;'>Parametri Form</span>"
    			Response.Write "<table BORDER=1 CELLSPACING=0 CELLPADDING=0 bordercolor='#000000' style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;COLOR: #000000;FONT-SIZE: 10pt;BORDER: black thin none;background:beige;width:0;'>"
    			for each f in  Request.Form
    				Response.Write "<tr><td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & f & "</td>" & "<td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & NullToSpace(Request.Form(f)) & "</td></tr>"
    			next
    			Response.Write "</table>"
    		end if	
    	end sub
    	
    	'--------------------------------------------------------------
    	'scrive i parametri passati come get
    	'--------------------------------------------------------------
    	sub ScriviParametriQueryString
    		dim f
    		if Request.QueryString.Count > 0 then
    			Response.Write "<span style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;FONT-WEIGHT: bolder;COLOR: BROWN;FONT-SIZE: 8pt;BACKGROUND-COLOR: white;'>Parametri QueryString</span>"
    			Response.Write "<table BORDER=1 CELLSPACING=0 CELLPADDING=0 bordercolor='#000000' style='FONT-FAMILY: Verdana, Arial;FONT-STYLE: normal;COLOR: #000000;FONT-SIZE: 10pt;BORDER: black thin none;background:beige;width:0;'>"
    			for each f in  Request.QueryString
    				Response.Write "<tr><td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & f & "</td>" & "<td style='PADDING-LEFT:5px;PADDING-RIGHT: 5px;PADDING-TOP: 2px;PADDING-BOTTOM: 2px;'>" & NullToSpace(Request.QueryString(f)) & "</td></tr>"
    			next
    			Response.Write "</table>"
    		end if	
    	end sub
    
    	'--------------------------------------------------------------
    	'scrive i parametri passati form, querystring e cookies
    	'--------------------------------------------------------------
    	sub ScriviParametri()
    		ScriviParametriForm
    		ScriviParametriQueryString
    	end sub
    
    
    	'--------------------------------------------------------------
    	'converte NULL in spazio codificato
    	'--------------------------------------------------------------
    	function NullToSpace(v)
    		if isNull(v) then
    			NullToSpace = ""
    		else
    			if v = "" then
    				NullToSpace = ""
    			else
    				NullToSpace = server.HTMLEncode( v )
    			end if
    		end if
    
    	end function
    
    %>

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: ti funziona la paginetta che ti ho mandato?
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Io non uso Jquery e quindi devo fare delle prove risistemando il tutto...

    Io quello che non capisco è perchè la pagina alla quale invio il POST non reperisce i dati con un semplice request.form...

    A questo punto credo proprio di non inviarlo... ma il codice per l'invio l'ho preso sul web e funziona.

    Boh...

    Grazie per l'aiuto



    Originariamente inviato da pietro09
    :master: ti funziona la paginetta che ti ho mandato?

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.