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

    Passaggio dati da form a servlet mediante script js

    Salve a tutti sono nuovo e avrei bisogno di un aiuto.
    Allora ho un form (dinamico per così dire, creato da script js) su cui è definita una tabella (3colonne). Una volta che l'utente sottoscrive questo form e fa il submit vorrei che una servlet recuperasse questi dati, per poi poterli inserire in db Mysql. Bene come faccio per intanto a recuperare questi dati da servlet. Vi posto il codice della jsp dove ho tutto, putroppo l'array che passo non contiene nulla di quello che è stato digitato.
    Se avete altre idee in merito,su come recuperare i valori dei campi, consigliatemi. Vi ringrazio!
    Grazie a chi si interesserà.
    codice:
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <form method="post" action="InsertDataUser?dati">
    <table border='2' id='my_table' class='tabella' cellspacing='0' cellpadding='0'>
    <thead><tr><th>EMAIL</th><th>INDIRIZZO</th><th>NUMERO DI TELEFONO</th></tr></thead>
    
    
    <tbody>
    
    
    </tbody>
    </table><br/>
    <input type='button' value='Inserisci elementi' onClick="aggiungiRiga('my_table')"/>
    <input type=submit name="Insert" value='Approva i dati' onClick="createList()" >
    </form>
    </body>
    <script type='text/javascript'>
    function aggiungiRiga(id_table){
    var table = document.getElementById(id_table);
    var tbody = table.getElementsByTagName('tbody')[0];
    var colonne = table.getElementsByTagName('th').length; 
    var tr = document.createElement('tr');
    for(var i=0; i<colonne; i++){
    
    
    var td = document.createElement('td');
    var tx = document.createTextNode(prompt("Inserisci testo per cella "+(i+1),""));
    
    
    td.appendChild(tx);
    tr.appendChild(td);
    }
    
    
    tbody.appendChild(tr);
    
    
    }
    </script>
    <script>
         
        function createList(){
        var table = document.getElementById('my_table');
        var dati = new Array(); 
        //var amtLst = new Array();
     
        for(var i=0; i<table.rows.length; i++){
            var row = table.rows[i];
     
            for(var j=0; j<row.cells.length; j++){
                var cell = row.cells[j];
                dati.push( cell.innerText ); 
                
            }
             
        }
        return dati;
    }
    </script>
    </html>
    Ultima modifica di ciro78; 14-03-2016 a 18:38 Motivo: tag code

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ciao benvenuto sul forum,
    ti invito a leggere il regolamento e in particolare la sezione che riguarda i titoli e l'utilizzo del tag code.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Ho forse utilizzato un titolo troppo generico? Per il tag code ok: devo inserire il codice tra questo così da renderlo più leggibile!

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da Petermessy Visualizza il messaggio
    Ho forse utilizzato un titolo troppo generico? Per il tag code ok: devo inserire il codice tra questo così da renderlo più leggibile!
    No. Il titolo andava bene. Uso questa frase per tutti i nuovi utenti che dimenticano il tag code
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Se l'intenzione è quella di inviare i dati inseriti, non popolare il form con del testo, popolalo con degli input.

  6. #6
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Se l'intenzione è quella di inviare i dati inseriti, non popolare il form con del testo, popolalo con degli input.
    Potrei avere un esempio pratico che mi permette poi di recuperare agevolmente i data acquisiti da form, possibilmente catalogando il valore del campo con la corrispondente colonna di riferimento please? Per esempio potrei fare così:
    codice:
     var input = document.createElement("input");
    Appenderlo alla tr e poi?
    Ultima modifica di Petermessy; 15-03-2016 a 11:01

  7. #7
    Originariamente inviata da lucavizzi
    Se l'intenzione è quella di inviare i dati inseriti, non popolare il form con del testo, popolalo con degli input.
    Ho cercato di trovare una soluzione implementando il seguente
    codice:
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    codice:
        pageEncoding="ISO-8859-1"%>
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <form method="post" action="InsertDataUser?dati">
    <table border='2' id='my_table' class='tabella' cellspacing='0' cellpadding='0'>
    <thead><tr><th>EMAIL    </th><th>INDIRIZZO    </th><th>NUMERO DI TELEFONO</th></tr></thead>
    <tbody>
    
    
    </tbody>
    </table><br/>
    <input type='button' value='Inserisci elementi' onClick="aggiungiRiga('my_table')"/>
    <input type=submit name="Insert" value='Approva i dati' onClick="createList()" >
    </form>
    </body>
    <script type='text/javascript'>
    function aggiungiRiga(id_table){
    var table = document.getElementById(id_table);
    var tbody = table.getElementsByTagName('tbody')[0];
    var colonne = table.getElementsByTagName('th').length; 
    
    
    for(var i=0; i<colonne; i++){
    var tr = document.createElement('tr');
    
    
    var td = document.createElement('td');
    var td1 = document.createElement('td');
    var td2 = document.createElement('td');
    
    
    var input = document.createElement("input");
    var input1 = document.createElement("input");
    var input2 = document.createElement("input");
    
    
    input.type = "text";input.setAttribute("name","email");
    input1.type = "text";input.setAttribute("name","indirizzo");
    input2.type = "text";input.setAttribute("name","numero");
    
    
    td.appendChild(input);
    td1.appendChild(input1);
    td2.appendChild(input2);
    
    
    tr.appendChild(td);
    tr.appendChild(td1);
    tr.appendChild(td2);
    }
    
    
    tbody.appendChild(tr);
    
    
    }
    </script>
    <script>
         
        function createList(){
        var table = document.getElementById('my_table');
        var dati = new Array(); 
        
        //var amtLst = new Array();
     
        for(var i=0; i<table.rows.length; i++){
            var row = table.rows[i];
             
            for(var j=0; j<row.cells.length; j++){
                var cell = row.cells[0];
                dati.push( cell.innerText ); 
                
            }
             
        }
        return dati;
    }
    </script>
    </html>
    adesso come potrei fare per recuperare tutti i valori immessi nella tabella? Sto invocando la mia servlet nell'action del form a cui vorrei passare tutto. Perchè non recupero nulla?
    Ultima modifica di Petermessy; 15-03-2016 a 16:30

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.