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

    Piccolo problema con AJAX e passaggio parametri

    Ciao a tutti! Sto lavorando su due pagine JSP. In particolare una che contiene un modulo di registrazione, in cui vengono inseriti dei parametri e inviati ad una servlet Controller, la quale esegue un'operazione sul database. Questo č il problema.

    In questa JSP inserisco i campi per la registrazione in un form che invoca una funzione javascript in cui uso AJAX. Vorrei inviare i dati al controller e lo faccio via url tramite post, ma qualcosa non va. Infatti nel database se vengono inseriti dati spunta una strana voce "objectHTMLInputElement". Suppongo sbaglio a passare i parametri "nome,cognome,username,password". Ecco il codice:

    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE html>
    <html>
        <head>
            <link href="stile2.css" rel="stylesheet" type="text/css">
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
            <script  type="text/javascript" src="./js/site.js"></script>
    
    
            
            
            <title>JSP Page</title>
        </head>
        <body>
            
            <script type="text/javascript">
                
               function setXMLHttpRequest(){
                   var xhr=null;                
                   if(window.XMLHttpRequest){                    
                       xhr = new XMLHttpRequest();                                    
                   }else if(window.ActiveXObject){                                        
                       xhr = new ActiveXObject("MicrosoftXMLHTTP");               
                   }
                   return xhr;            
               }
        
              var xhrObj = setXMLHttpRequest();    
                
                
            function registraUtente(){
                            //RECUPERO DEI PARAMETRI
    
    
    
    
                            //ESECUZIONE DELLA CHIAMATA AJAX
               /*  var nome = $("#nome").val();
                 var cognome = $("#cognome").val();
                 var username = $("#username").val();
                 var password = $("#password").val(); /
                
               // $.ajax(
                   // {
                     //   type: 'POST',
                      //  url: 'inserisciutente.jsp',
                      //  data: "nome=" + nome + "&cognome=" + cognome + "&username=" + username + "&password=" +password,
                         
                       /* complete: function Ok(data){
                                            //SE CI SONO ERRORI MOSTRO L'ERRORE ALTRIMENTI UN MESSAGGIO DI CONFERMA
                            // alert("Registrazione avvenuta con successo!");
                             $('#risultato').load('CIAO');
                            
                            
                        },
                        fail: function Errore(){
                            alert("Errore nella registrazione!!!");
                           
                        }*/
                        
               // });
               
                  var nome=document.getElementById("nome");
                  var cognome=document.getElementById("cognome");
                  var username=document.getElementById("username");
                  var password=document.getElementById("password");
                
                  /*var url ="Controller?state=registraUtente&nome="+document.getElementById("nome")+
                          "&cognome="+document.getElementById("cognome")+
                          "&username="+document.getElementById("username")+
                          "&password="+document.getElementById("password")+""; */
            
                    var url ="Controller?state=registraUtente&nome="+nome+"&cognome="+cognome+"&username="+username+"&password="+password+"";
                  
                        xhrObj.open("GET",url,true);                
                        xhrObj.onreadystatechange=updatePage;                
                        xhrObj.send(null); 
                
                
                
            }
            
            //funzione che modifica l'html desiderato            
            function updatePage(){                    
                if(xhrObj.readyState == 4){                                       
                    var risp = xhrObj.responseText;                                        
                    document.getElementById("risultato").innerHTML=risp;                
                }                             
            } 
            
            
     
        </script>
            
            
    
    
            
            <article>
                <h3>Registrati</h3>
                    
                  
                    <form class="registrazione"  action="javascript:registraUtente()" method="post">
                    <fieldset>
                    
                        <p>
                            <label for="nome">Nome</label>
                            <input type="text" id="nome" name="nome" placeholder="es. Mario" required value="" />
                        </p>
                        
                        <p>
                            <label for="cognome">Cognome</label>
                            <input type="text" id="cognome" name="cognome" placeholder="es. Rossi" required value="" />
                        </p>
                        
                        <p>
                            <label for="username">Username</label>
                            <input type="text" id="username" name="username" placeholder="es. mrossi82" required value="" />
                        </p>
                        
                        <p>
                            <label for="password">Password</label>
                            <input type="password" id="password" name="password" placeholder="es. Ab0123" required value="" />
                        </p>
                        
                      
                        
                        <p class="bottone">
                            <button class="bottone-invia" type="submit" >Invia</button>
                        </p>
                        
                    </fieldset>
                </form>
                    
                    
                    <div id="risultato">
                        
                        
                    </div>        
                    
            </article>
            
        </body>
    </html>

    E qui la sezione interessata del controller:

    codice:
      else if("registraUtente".equals(request.getParameter("state"))){
                  
                  PrintWriter writer = response.getWriter();
                  
                  String nome=request.getParameter("nome");
                  String cognome=request.getParameter("cognome");
                  String username=request.getParameter("username");
                  String pwd=request.getParameter("password");
                  
                  boolean ris=c.addUser(nome, cognome, username, pwd, "user");
                  if(ris){
                      
                       writer.print("Utente inserito correttamente!!!");
                  }
                  
                  else{
                       writer.print("Errore!\nInserisci un username differente!");
                  }
                  
                  
              }
    La chiamata AJAX sembra funzionare correttamente, perņ nel database compare quella voce che vi ho indicato sopra. Cosa non va secondo voi?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ti sei dimenticato il .value

    var nome=document.getElementById("nome").value;
    var cognome=document.getElementById("cognome").value;
    var username=document.getElementById("username").value;
    var password=document.getElementById("password").value;
    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

  3. #3
    Urca vero!

    Grazie mille

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.