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

    Recuperare tabella html da servlet con java

    Buongiorno a tutti. Ho bisogno di un aiuto. Ho il seguente codice in una jsp:
    codice:
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        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";input1.setAttribute("name","indirizzo");
    input2.type = "text";input2.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 =newArray();
     
        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>

    Come potrei fare per recuperare tutti i valori immessi nella tabella ed eventualmente scorrerli per poterli poi immettere nel DB? Vorrei poter recuperare le singole colonne (o tutta la tabella) con la servlet (menzionata nell'action del form). Per quale motivo non recupero nulla? Potete darmi un consiglio se sto agendo bene quanto meno nella logica?
    Ultima modifica di LeleFT; 16-03-2016 a 15:24

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Petermessy Visualizza il messaggio
    Come potrei fare per recuperare tutti i valori immessi nella tabella ed eventualmente scorrerli per poterli poi immettere nel DB?
    Da quanto si vede nel codice, il markup della riga <tr> con le celle e gli input viene generato "dinamicamente" lato client tramite Javascript. E va bene, non è questo il punto.

    Se vuoi che siano usabili (e senza troppi casini) lato server, allora servono 2 cose:

    a) I campi devono essere chiaramente nel <form> che invii. Vedo che è già così, quindi ok.
    b) I dati devono essere identificabili per riga, ovvero ciascuna riga di informazione deve essere (facilmente) distinguibile dalle altre.

    Riguardo il punto b), è abbastanza semplice: devi generare dei name appropriati in modo che ciascuna riga sia individuabile.

    La prima riga potrebbe avere "email1", "indirizzo1", "numero1", la seconda "email2", "indirizzo2", "numero2", ecc... Insomma, lato client basta tenere un "indice".

    Questo "miscuglio" di parametri si può gestire lato server in diversi modi, uno semplice è generare tu i nomi fino a quando ne trovi.
    Inizialmente cerchi il parametro "email1", esiste? Ok, allora prendi "indirizzo1" e "numero1". Poi cerchi "email2", ecc...
    Poi arrivi es. a "email8", esiste? No, allora hai finito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ti ringrazio per l'importante consiglio che mi hai donato! Cercherò ora dimetterlo in pratica! GRAZIE!

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.