Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615

    [JSP] Aggiornamento tabella

    Buona sera a tutti.
    La mia piccola web application visualizza correttamente in una pagina jsp i dati di un piccolissimo database mySql con i campi cognome e telefono. Inoltre sono presenti nella pagina due campi vuoti. Vorrei fare in modo che selezionando un pulsante della stessa pagina alla tabella si aggiunga un record con cognome e telefono inseriti dall'utente in tali campi.

    Come posso fare? Grazie a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ti conviene aprire una finestra popup oppure "popunder" in cui far inserire i dati in form. Al submit del form farai l'insert a database (quindi qui hai la parte server-side) e successivamente refresh della pagina madre e chiusura della popup.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    GRAZIE ANDREA, davvero gentilissimo.

    La mia grande difficoltà sta nel far eseguire qualsiasi azione ad un pulsante, oggi ho creato pagine in jsp che all'apertura producevano query di ogni tipo e foggia, ma sui pulsanti deve esserci qualcosa che non va perché non riesco neppure a far visualizzare una popup con un messaggio! Potresti per favore indicarmi qualche riga di codice di esempio per far eseguire ad un pulsante un'azione anche banalissima, come mostrare un messaggio o aprire un popup? Poi ci penserò io ad inserire il codice per fare quello che mi consigli tu. Grazie ancora tanto e buona serata.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Certo, comunque credo che il tuo problema sia "client-side", se sei infatti riuscito a produrre output di dati pescati da database, qualcosa lo dovrai pur sapere server-side.

    Molto semplicemente, facciamo finta che ti trovi in questa situazione:

    codice:
    <table>
      <tr>
        <th>Nome</th><th>Cognome</th><th>Numero di telefono</th>
      </tr>
      <tr>
        <td>John</td><td>Doe</td><td>+1 212 555 5555</td>
      </tr>
      <tr>
        <td>John</td><td>Doe</td><td>+1 212 555 5555</td>
      </tr>
      <tr>
        <td>John</td><td>Doe</td><td>+1 212 555 5555</td>
      </tr>
    </table>
    <button onclick="window.open('pagina_inserimento.jsp','popup','width=600,height=600');">Nuovo Contatto</button>
    dovrai scrivere pagina_inserimento.jsp che conterrà un form
    codice:
    <form name="formInserimento" action="pagina_inserimento.jsp" method="post">
      Nome: <input type="text" name="nome" />
    
      Cognome: <input type="text" name="congome" />
    
      Telefono: <input type="text" name="telefono" />
    
      <input type="submit" value="Salva Contatto" />
    </form>
    Piu "su" nella JSP avrai il codice server-side per recuperare i dati, in definitiva
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!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=UTF-8">
            <title>JSP Page</title>
        </head>    
        <body>
            <%
          String nome = request.getParameter("nome");
          String cognome = request.getParameter("cognome");
          
          if (nome != null && cognome != null) {
              out.println("Fatto");
          }
          else {
        %>
            <form name="mioForm" action="header.jsp" method="post">
                Nome: <input type="text" name="nome" />
    
                Cognome: <input type="text" name="cognome" />
    
                <input type="submit" value="Salva Contatto" />
            </form>
            <% } %>
        </body>
    </html>
    Al posto di "fatto" farai l'inserimento a database e metterai un link per chiudere la popup e fare il refresh della pagina madre... insomma, era più da javascript che da jsp
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Sono senza parole, ti ringrazio. Mi sono subito messo al lavoro con il tuo codice; finalmente la finestra si apre, solo che il database non si aggiorna. Ecco come ho fatto:

    Nello spazio "Fatto" da te indicato ho inserito le seguenti righe, ossia

    MySqlRemote miaConnessione = new MySqlRemote ("mioDatabase", "mioUtente", "miaPassword");
    miaConnessione.connetti();
    miaConnessione.eseguiAggiornamento("insert ... ecc");

    Dunque, le prima due sono identiche a quelle inserite nella finestra di partenza con le quali mi connettevo al db per visualizzare i dati, la terza è relativa alla query di inserimento. La cosa bella è che questo codice nella finestra di partenza funziona benissimo, ho anche provato ad inserire la terza riga nella finestra di partenza e il database si aggiorna correttamente alla sua apertura! Invece, se lo inserisco nella form di inserimento dati, non vedo errori ma il db non si aggiorna. Davvero stranissimo! Come mai secondo te? (non si tratta di un problema di richiamo valori dai campi testo, perché anche inserendo testi statici e non richiami ai valori inseriti dall'utente continua a non aggiornarsi).

    Grazie ancora

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Hai importato le classi necessarie? Stai utilizzando (o tentando di utilizzare) bean(s) senza avergli detto al povero tomcat che vuoi utilizzare quel dato bean!?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Andrea sei sempre provvidenziale! Ora aggiorna i dati, ma senza prenderli dalle caselle. Mi spiego.

    Se nella query insert inserisco valori statici, ad esempio 'Antonio', 'Rossi' allora tutto funziona a meraviglia. Se gli faccio prelevare i dati inseriti nelle caselle si aggiunge una riga ma il suo contenuto è null . Che strano... Come mai?

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Posta il codice della pagina con il form.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    SUBITO! (e grazie)


    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page import="ArchimedePackage.*"%>
    <%@page import="java.sql.*"%>
    <%@page import="Accesso.*"%>
    <%@page import="java.util.Vector"%>


    <%--
    The taglib directive below imports the JSTL library. If you uncomment it,
    you must also add the JSTL library to the project. The Add Library... action
    on Libraries node in Projects view can be used to add the JSTL 1.1 library.
    --%>
    <%--
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    --%>

    <!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=UTF-8">
    <title>JSP Page</title>
    </head>
    <body>

    <%
    String cognome = request.getParameter("cognome");
    String telefono = request.getParameter("telefono");
    if (telefono != null && cognome != null){

    MySqlRemote UltConn = new MySqlRemote("prova","testuser","testpsw");
    UltConn.connetti();
    UltConn.eseguiAggiornamento("insert into prova (Cognome, Telefono) values (cognome, telefono)");



    }
    else{


    %>

    <h1>JSP Page</h1>

    <form name="formInserimento" action="pagina_inserimento.jsp" method="post">
    cognome: <input type="text" name="cognome" />

    telefono: <input type="text" name="telefono" />

    <input type="submit" value="Salva Contatto" />
    <input type="submit" value="Chiudi" onclick="window.close();" />
    </form>
    <% } %>
    <%--
    This example uses JSTL, uncomment the taglib directive above.
    To test, display the page like this: index.jsp?sayHello=true&name=Murphy
    --%>
    <%--
    <c:if test="${param.sayHello}">

    Hello ${param.name}!
    </c:if>
    --%>

    </body>
    </html>

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A sentimento, proverei a modificare questa
    codice:
    UltConn.eseguiAggiornamento("insert into prova (Cognome, Telefono) values (cognome, telefono)");
    così:
    codice:
    UltConn.eseguiAggiornamento("insert into prova (Cognome, Telefono) values ('"+cognome+"', '"+telefono+"')");
    E per sicurezza, farei anche un bel out.println della query:
    codice:
    String query = "insert into prova (Cognome, Telefono) values ('"+cognome+"', '"+telefono+"')";
    out.println("<pre>"+query+"</pre>");
    MySqlRemote UltConn = new MySqlRemote("prova","testuser","testpsw");
    UltConn.connetti();
    UltConn.eseguiAggiornamento(query);
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.