Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [Ajax] Invio Form

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786

    [Ajax] Invio Form

    Salve,

    ho un form html:

    codice:
    	<form id="nuovo" method="post" action="add.asp">
    		
    
    <input name="msg" type="text" size="80" /></p>
    		
    
    <input type="submit" value="Invia" /></p>
    	</form>
    Vorrei che tramite Ajax viene inviato a una pagina asp con metodo post,
    senza però cambiare pagina.

    come devo fare ?

    Grazie !

    p.s. ho trovato questo scritp ma non ho capito come adattarlo al mio caso

    codice:
    function xxx() { 
      var HTTPobj = new RSobj();
      var postData = "?var1=value1&var2=value2& ... &varn = valuen";
    
      HTTPobj.open("POST", "x.php", true);
      HTTPobj.setRequestHeader("Method", "POST x.php HTTP/1.1");
      HTTPobj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      HTTPobj.setRequestHeader("Content-length", postData.length);
      HTTPobj.setRequestHeader("Connection", "close");  
    
      HTTPobj.onreadystatechange = function() { cut }
      //modifiche eventuali al documento
      HTTPobj.send(postData);
    }
    Vorrei fare una cosa del genere:

    http://noxirc.net/osvi/bug/bug.php?id=1002
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: forse non risponde alle tue esigenze, ma hai preso in considerazione la possibilità di inviare il post non con ajax ma col metodo tradizionale dentro un iframe nascsto?
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    il punto è che non voglio usare gli iframe.

    Mi puoi aiutare per favore ?

    grazie !
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ti mando una pagina scritta in modo prolisso, per uso didattico.
    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>Pagina senza titolo</title>
        <link href="../../stili/Styles.css" rel="stylesheet" type="text/css" />
    
        <script type="text/javascript">
            function ListBox_regioni_onchange_get(v)
            {
                /*-----------------------------------------------------------------------
                Qui faccio alcune operazioni prima di richiamare ajax.
                Per esempio, disabilito la lista regioni, o rendo visibile una immagine
                per indicare ajax al lavoro
                ------------------------------------------------------------------------*/
                //disabilito la lista regioni
                v.disabled = true;
                
                
                //creo l'oggetto che fa la richiesta http
                var objHTTP = null;
    	        if(window.XMLHttpRequest) 
    	        {
    		        // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
    		        objHTTP = new XMLHttpRequest(); 
    	        } 
    	        else if(window.ActiveXObject) 
    	        {
    		        try
    		        {
    			        // Internet Explorer 6 
    			        objHTTP = new ActiveXObject("MSXML2.XMLHTTP"); 
    		        } 
    		        catch(e) 
    		        {
    			        // Internet Explorer 4,5 
    			        objHTTP = new ActiveXObject("Microsoft.XMLHTTP"); 
    		        }
    		        } 
    	        else 
    	        {
    		        alert("Non è possibile creare l'oggetto che fa la richiesta http");
    		        return;
    	        }
                
                //lista parametri da mandare via post nel formato
                //variabile1=valore1&variabile2=valore2...
                var parametri = "codice_istat_regione=" + escape(v.value);
    	        
    	        
    	        /*-------------------------------------------------------------------------
    	        La risorsa da richiedere è la pagina server che svolge i compiti richiesti.
    	        Se è la medesima, si può usare ?.
    	        Può naturalmente essere seguita da parametri.
    	        In questo caso spedisco il parametro ajax_comando per dire alla pagina
    	        cosa fare
    	        --------------------------------------------------------------------------*/
    	        var url = "ajax_in_action/regioni_provincie.aspx?ajax_comando=provincie";
    	        
    	        
    	        //apertura connessione HTTP
    	        //1° parametro, GET, POST, HEAD
    	        //2° parametro, risorsa da richiedere: ? per richiamare la pagina medesima
    	        //3° parametro, asincrona=true, sincrona=false
    	        objHTTP.open("POST", url, true);
    	        objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	        objHTTP.setRequestHeader('Content-length',parametri.length);
    	        objHTTP.setRequestHeader('Connection', 'close');
            	
    	        /*--------------------------------------------------------------------------------
    	        //impostazione della funzione di callback: in questo caso, la funzione è in linea.
    	        //ma è possibile indicare il NOME della funzione. Per esempio:
    	        //objHTTP.onreadystatechange = mia_funzione; //nota: senza parentesi finali
    	        // e altrove, per esempio più sotto, definire la funzione:
    	        //function mia_funzione(){...}
    	        ---------------------------------------------------------------------------------*/
    	        objHTTP.onreadystatechange = function() 
    	        {
    		        if (objHTTP.readyState == 4) 
    		        {
    			        if (objHTTP.status != 200) 
    			        {
    			            /*--------------------------------------------------------------------
    			            Qui sono in errore, e faccio le opportune operazioni, per esempio,
    			            riabilito i pulsanti disabilitati, messaggio di errore, etc...
    			            ---------------------------------------------------------------------*/
    			            v.disabled = false;
    			            
    			            alert("ERRORE NELLA TRASMISSIONE DATI!" 
    			                    + "\n\nreadyState:"
    			                    + objHTTP.readyState 
    			                    + "\nstatus: "
    			                    + objHTTP.status 
    			                    + "\nstatusText: " 
    			                    + objHTTP.statusText 
    			                    + "\n\nheaders:\n"
    			                    + objHTTP.getAllResponseHeaders()
    			                ); 
    			            return;
    			        }
            			
    			        /*--------------------------------------------------------------------
    			        Qui ho ottenuto i dati dal server
    			        o sotto forma di testo o html, con objHTTP.responseText
    			        o sotto forma di xml, con objHTTP.responseXML
    			        ---------------------------------------------------------------------*/
    			        var t = objHTTP.responseText;
            			//var tx = objHTTP.responseXML;
            			
    			        //creo la lista provincie
    			        document.getElementById("div2").innerHTML = "Scegli la provincia:
    " + t;
    			        
    			        //riabilito la lista regioni
    			        v.disabled = false;
    		        }
    	        };
            	
    	        
    	        
    	        
    	        //invio della richiesta, per GET e HEAD è null
    	        objHTTP.send(parametri);
                
                
                
                
            }
        </script>
    
    </head>
    <body>
        <form id="form1" action="?">
            <div id="div1" style="float: left">
                Scegli la regione:
    
                <select name="regioni" id="regioni" onchange="ListBox_regioni_onchange_get(this);" style="height: 333px; width: 208px;" multiple="multiple">
                    <option value="13">ABRUZZO</option>
                    <option value="17">BASILICATA</option>
                    <option value="18">CALABRIA</option>
                    <option value="15">CAMPANIA</option>
                    <option value="08">EMILIA-ROMAGNA</option>
                    <option value="06">FRIULI-VENEZIA GIULIA</option>
                    <option value="12">LAZIO</option>
                    <option value="07">LIGURIA</option>
                    <option value="03">LOMBARDIA</option>
                    <option value="11">MARCHE</option>
                    <option value="14">MOLISE</option>
                    <option value="01">PIEMONTE</option>
                    <option value="16">PUGLIA</option>
                    <option value="20">SARDEGNA</option>
                    <option value="19">SICILIA</option>
                    <option value="09">TOSCANA</option>
                    <option value="04">TRENTINO-ALTO ADIGE</option>
                    <option value="10">UMBRIA</option>
                    <option value="02">VALLE D'AOSTA</option>
                    <option value="05">VENETO</option>
                </select>
            </div>
            <div id="div2">
                Scegli la provincia:
    
            </div>
        </form>
    </body>
    </html>
    Pietro

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    Grazie !

    Quello che voglio fare io è una chat Asp + Ajax:

    Sono a buon punto credo, ma pultroppo la parte Ajax non fa per me

    mi puoi per favore correggere-ottimizzare il js di questa pagina ?

    grazie !

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>SuperChat v. 1.0</title>
    <script type="text/javascript">
    
    	var xmlHttp
    	var url
    	var rnd	= Math.random();
    	
    	window.setInterval('aggiorna()',2000);
    	
    	
    	// - - - - - - - - - - - - - - - - - -
    	function aggiorna() {
    	
    		messaggi();
    		utenti();
    	} 
    	
    	// - - - - - - - - - - - - - - - - - -
    	function messaggi() {
    		
    		rnd++;
    		url = "messaggi.asp?r" + rnd;
    		xmlHttp=GetXmlHttpObject()
    		
    		xmlHttp.onreadystatechange = function() {
    		
    			if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    				obj = document.getElementById("messaggi");
    				obj.innerHTML = xmlHttp.responseText
    			}
    		}	
    		
    		
    		xmlHttp.open("GET", url , true);
    		xmlHttp.send(null);
    	}
    
    	function utenti() {
    	
    		rnd++;
    		url = "utenti.asp?r" + rnd;
    		req = GetXmlHttpObject()
    			
    			req.onreadystatechange = function() {
    			
    				if( req.readyState == 4 && req.status == 200 ) {
    				
    					obj = document.getElementById( "utenti" );
    					obj.innerHTML = req.responseText;
    				}
    			
    			}
    			
    			req.open( 'GET', url, true );
    			req.send( null );
    		}
    	
    	function chatta(v) {
    	
    		v.disabled = true;
    		
    		objHTTP = GetXmlHttpObject()
    		
    		parametri = "msg=" + escape(v.value);
    		url = "add.asp?msg=" + escape(v.value);
    		
    		objHTTP.open("POST", url, true);
    		objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		objHTTP.setRequestHeader('Content-length',parametri.length);
    		objHTTP.setRequestHeader('Connection', 'close');
    		objHTTP.send(parametri);
    		
    		v.disabled = false;
    	}	
    	
    
    // - - - - - - - - - - - - - - - - - -
    
    
    	function GetXmlHttpObject() {
    		
    		var objXmlHttp = null
    		
    		if (window.XMLHttpRequest) {
    			objXmlHttp = new XMLHttpRequest();
    		} else {
    			objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		
    		// - - - - - - - - - - - - - - - - - -
    		try {
    			return objXmlHttp
    		} catch (e) {
    			alert("Errore !")
    			return
    		}
    	}	
    </script>
    </head>
    
    <body>
    	<div id="contenitore">
    		<div id="testata">
    			<h1>SuperChat v. 1.0</h1>
    		</div>
    		<div id="chat">
    			<div id="messaggi">
    				
    
    Qua i messaggi</p>
    			</div>
    			<div id="utenti">
    				
    
    Qua gli utenti</p>
    			</div>
    			<div id="editor">
    				<form id="form1" action="?">
    					
    
    <input name="regioni" type="text" id="regioni" /></p>
    					
    
    <input type="submit" onclick="chatta(this);" value="Invia" /></p>
    				</form>
    			</div>
    		</div>
    	</div>
    </body>
    </html>
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    up
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    up
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,786
    [Scambio Links a Tema] Contattatemi in Privato x + Info.

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.