Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    AJAX e passaggio dati POST

    Ciao a tutti, ho un problema che non riesco a risolvere.
    Da una pagina asp voglio inviare dei dati di un modulo tramite post, ma i dati non vengono recuperati dalla pagina richiamata e non capisco dove sbaglio

    dunque

    questa è la pagina asp in cui ho il form:
    codice:
    <form name="form1">
    
    
    <div id="codice" class="arr"><%=codice%></div>
    
    
    <textarea type="text" name="messaggio" id="messaggio" style="width:546px; height:96px; background:none; border:thin ridge #CACAD9; font-family:MTCORSVA; font-size:16px; resize:none;" /></textarea>
    
    <img id="tasto_invia" src="image/invia.png" width="92" height="105" style="cursor:pointer;" onclick="invia_messaggio()" />
    
    
    
    </form>
    (devo inviare il contenuto della textarea ed il codice tramite post)


    il codice js è:
    codice:
    function invia_messaggio(){
    	messaggio=$("#messaggio").val();
    	codice=$("#codice").text();
        $.ajax({
          type: "POST",
          url: "invia_messaggio.asp",
          data: "codice="+codice+"&messaggio=" + messaggio,
          dataType: "html",
          success: function()
          {
    		alert("ok");
          },
          error: function()
          {
            alert("Chiamata fallita, si prega di riprovare...");
          }
        });
    
    
    }
    e nella pagina invia_messaggio.asp ho
    codice:
    <%
    codice=request.form("codice")
    messaggio=request.form("messaggio")
    response.write  codice&","&messaggio
    
    
    'aggiorno il db
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & Server.MapPath("/mdb-database/db.mdb"))
    Set objRs = Server.CreateObject("ADODB.Recordset")
    set objRs = objConn.Execute("INSERT INTO messaggi VALUES ('"&codice&"', '"&messaggio&"',#"&now()&"#")
    %>
    ricevo l'errore "Failed to load resource: the server responded with a status of 500 (Internal Server Error)"
    e nella pagina invia_messaggio.asp non vengono recuperati i valori
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  2. #2
    ho provato anche
    codice:
    function invia_messaggio(){
    	codice=$("#codice").text();
    	messaggio=$("#messaggio").val();
    
    
    	errore=0;
    	//controllo che sia compilato
    	if (messaggio==""){
    		errore=1;
    		alert('Inserire un messaggio da inviare!');
    	}
    	if (errore==0){
          	if(window.XMLHttpRequest){
                    xmlhttp = new XMLHttpRequest();
                }else{
                    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
                };
    
    
                xmlhttp.onreadystatechange = function(){
                    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                        //document.getElementById('message').innerHTML = xmlhttp.responseText;
    					alert("ok");
                    };  
                };
    
    
                parameters = 'codice='+codice+'&messaggio'+messaggio;
    
    
                xmlhttp.open('POST','invia_messaggio.asp',true);
                xmlhttp.setRequestHeader('Content-type', 'x-www-form-urlencoded');
                xmlhttp.send(parameters);
    	}
    }
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  3. #3
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590

    re post

    Quote Originariamente inviata da Grambo Visualizza il messaggio
    ho provato anche
    codice:
    function invia_messaggio(){
        codice=$("#codice").text();
        messaggio=$("#messaggio").val();
    
    
        errore=0;
        //controllo che sia compilato
        if (messaggio==""){
            errore=1;
            alert('Inserire un messaggio da inviare!');
        }
        if (errore==0){
              if(window.XMLHttpRequest){
                    xmlhttp = new XMLHttpRequest();
                }else{
                    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
                };
    
    
                xmlhttp.onreadystatechange = function(){
                    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                        //document.getElementById('message').innerHTML = xmlhttp.responseText;
                        alert("ok");
                    };  
                };
    
    
                parameters = 'codice='+codice+'&messaggio'+messaggio;
    
    
                xmlhttp.open('POST','invia_messaggio.asp',true);
                xmlhttp.setRequestHeader('Content-type', 'x-www-form-urlencoded');
                xmlhttp.send(parameters);
        }
    }
    prova cosi...se non mi sbaglio...
    codice:
    function invia_messaggio()
     if (window.XMLHttpRequest) {
            ajaxmsg = new XMLHttpRequest();
            ajaxmsg.onreadystatechange = function() {ElaboraMsg()};
            ajaxmsg.open("POST","invia_messaggio.asp, true);
            ajaxmsg.send(null);
        // branch for IE/Windows ActiveX version
        } else if (window.ActiveXObject) {
            ajaxmsg = new ActiveXObject("Microsoft.XMLHTTP");
            if (ajaxmsg) {
                ajaxmsg.onreadystatechange= function() {ElaboraMsg()};
                ajaxmsg.open("POST","invia_messaggio.asp, true);
                ajaxmsg.send();
            }
        }
    }
    function ElaboraMsg() {
     var risposta; 
       if (ajaxmsg.readyState==4)
         {     
         risposta=ajaxmsg.responseText;
         alert(risposta);
         }
    }
    Nel POST mi pare che puoi intercettare i campi del form con request.form("nomecampo")....
    se non li intercetti devi mandarli tramite querystring...?campo=xxxx etc..
    vedi un po tu
    ripreso da uno dei miei pgm intranet e riadattato...
    ciao
    Ultima modifica di vic53; 15-06-2016 a 22:05
    Vic53

  4. #4
    ma se non gli mando nulla come faccio a recuperare i valori? non gli invio dei parametri?
    per quanto riguarda inviare i dati tramite get (querystring) non credo sia fattibile, devo inviare il contenuto di una textarea, e potrebbe essere molto grande..
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  5. #5
    Ho risolto, in pratica voleva un "button", il mio html è diventato
    codice:
    <div style="position:absolute; left:618px; top:8px;">
    <input type="submit" name="button" id="tasto_invia" value="" style="background-image:url(image/invia.png); background-color:transparent; width:92px; height:105px; border:none; cursor:pointer;" onmouseover="seleziona('tasto_invia','_1')" onmouseout="seleziona('tasto_invia','')"/>
    </div>
    ed il js
    codice:
    function invia_messaggio(){
     codice=$("#codice").text();
     messaggio=$("#messaggio").val();
    
    
     errore=0;
     //controllo che sia compilato
     if (messaggio==""){
      errore=1;
      alert('Inserire un messaggio da inviare!');
     }
     if (errore==0){
           if(window.XMLHttpRequest){
                    xmlhttp = new XMLHttpRequest();
                }else{
                    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
                };
    
    
       parameters = 'codice='+codice+'&messaggio='+messaggio;
                xmlhttp.open('POST','invia_messaggio.asp',true);
                xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       
                xmlhttp.onreadystatechange = function(){
                    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                        //document.getElementById('message').innerHTML = xmlhttp.responseText;
         alert("ok");
                    };  
                };
    
    
                xmlhttp.send(parameters);
     }
     
    }
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  6. #6
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590
    Some other notes on POST requests:


    • POST requests are never cached
    • POST requests do not remain in the browser history
    • POST requests cannot be bookmarked
    • POST requests have no restrictions on data length


    dall help di w3schools.com
    Tu puoi mandare campi anche lunghi con il POST...
    quindi la chiamata al tuo programma asp diventa cosi...

    codice:
    function invia_messaggio()
     messaggio=$("#messaggio").val();
     codice=$("#codice").text();
     var datiform="?codice="+codice+"&messaggio="+messaggio;
     if (window.XMLHttpRequest) {
            ajaxmsg = new XMLHttpRequest();
            ajaxmsg.onreadystatechange = function() {ElaboraMsg()};
            ajaxmsg.open("POST","invia_messaggio.asp"+datiform, true);
            ajaxmsg.send(null);
        // branch for IE/Windows ActiveX version
        } else if (window.ActiveXObject) {
            ajaxmsg = new ActiveXObject("Microsoft.XMLHTTP");
            if (ajaxmsg) {
                ajaxmsg.onreadystatechange= function() {ElaboraMsg()};
                ajaxmsg.open("POST","invia_messaggio.asp"+datiform, true);
                ajaxmsg.send();
            }
        }
    }
    function ElaboraMsg() {
     var risposta; 
       if (ajaxmsg.readyState==4)
         {     
         risposta=ajaxmsg.responseText;
         alert(risposta);
         }
    }

    Vic53

  7. #7
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590
    Chiaramente quando apri il programma chiamato devi legggere i campi querystring...
    codice:
    dim codice, messaggio
    codice=Request.querystring("codice")
    messaggio=Request.querystring("messaggio")
    penso che basti...

    la lunghezza del messaggio MAXLenght del POST è impostata nel server IIS e comunque si puo' definire anche più grande del default però devi guardare la documentazione di IIS
    ciao
    Vic53

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 © 2024 vBulletin Solutions, Inc. All rights reserved.