|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Aug 2012
Messaggi: 26
|
[JSP]valore da submit
Dato il seguente codice che segue a quello di una select che genera una tabella, io vorrei assegnare ad ogni tasto compra l'id o il titolo della rispettiva riga nel database e penso di esserci riuscito ma il problema è che non riesco a riprendere tale valore con la direttiva request.getParameter(), qualcuno puo gentilmente illuminarmi? grazie
Codice:
<form method='get'>
<td><input type='submit' String id='<%="titolo"%>' name='compra' value='compra' />
</form>
<%
out.println("</tr>");
}
out.println("</table>");
if(request.getParameter("compra") != null){
String sql;
String codice =request.getParameter("titolo");
stmt= Conn.createStatement();
sql="Delete from libri where Titolo= '"+codice+"'";
int stat=stmt.executeUpdate(sql);
if(stat!= 0)
out.println("ok");
else
out.println("no");
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
I valori che puoi recuperare con request.getParameter(String) sono i value corrispondenti a un name. Quindi credo che nel tuo caso non puoi recuperarli da jsp. Io di solito in casi come questo uso Javascript o meglio Jquery. Faccio così solitamente.
Codice:
<tag data-codice="<%= codice %>">qualcosa</tag> Codice:
$(selettore).data("codice")
Ultima modifica di ndakota : 26-05-2013 alle 12:50. Motivo: Aggiunto robba |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Aug 2012
Messaggi: 26
|
Grazie della risposta, dato che di jquery ne so davvero poco ho provato a fare cosi sai dirmi dove sbaglio? grazie
Codice:
try{
Connection Conn=null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/libri?user=root&password=rogers");
Statement stmt=Conn.createStatement();
if(request.getParameter("compra") != null){
String sql;
int codice= 0;
$("input[type='hidden']").data("id");
stmt= Conn.createStatement();
sql="Delete from libri where id = '"+codice+"'";
int stat=stmt.executeUpdate(sql);
if(stat!= 0)
out.println("ok");
else
out.println(codice);
}
String query ="SELECT * FROM libri";
ResultSet rs=stmt.executeQuery(query);
out.println("<table border=1 align=center>");
out.println("<td bgcolor=silver>ISBN</td>");
out.println("<td bgcolor=silver>EDITORE</td>");
out.println("<td bgcolor=silver>AUTORE</td>");
out.println("<td bgcolor=silver>TITOLO</td>");
out.println("<td bgcolor=silver>PREZZO</td>");
out.println("<td bgcolor=silver>COMPRA</td>");
while(rs.next()){
//ottiene i dati
out.println("<tr>");
String editore=" ",autore=" ",titolo=" ",isbn=" ",box=null;float prezzo=0;int id=0;
isbn =rs.getString("ISBN");
editore=rs.getString("Editore");
autore=rs.getString("Autore");
titolo=rs.getString("Titolo");
prezzo=rs.getFloat("Prezzo");
id=rs.getInt("id");
out.println("<td>"+isbn+"</td>");
out.println("<td>"+editore+"</td>");
out.println("<td>"+autore+"</td>");
out.println("<td>"+titolo+"</td>");
out.println("<td>"+prezzo+"</td>");
%>
<form action="galleria.jsp" method="post">
<%
out.print("<td>");
box="<input type='submit' name='compra' value= 'Compra' >";
out.print(box);
out.print("<td>");
out.println("<td><input type='hidden' data=" + id + " /></td>");
%>
</form>
<%
out.println("</tr>");
}
out.println("</table>");
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Ma è un casino
Io usando Bootstrap, Jquery e soprattuto i tag di tomcat per l'interazione con il db avrei scritto un quarto del codice.
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Aug 2012
Messaggi: 26
|
Il problema è che non funziona nemmeno cosi... Comunque i miei strumenti per realizzare la web application sono jsp e servelet
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 72
|
Quel parameter che vuoi recuperare lo devi settare nella url della pagina.
Ti faccio un esempio. Nella jsp x hai la tua Select che manda via form i dati ad una Servlet (immagino). La servlet legge questi dati ci lavora e da questa te vuoi cadere nella pagina compra. Nell'url della pagina compra devi impostare alla fine "?compra=valore". Ovviamente in questo modo passerai i dati in chiaro. Un altro modo è di usare i metodi set/getAttribute(). Nella servlet imposti request.setAttribute("compra", valore) e nella jsp compra usi request.getAttribute("compra") per recuperare il valore. |
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Aug 2012
Messaggi: 26
|
sinceramente(so che è da buon sviluppatore) ma non mi interessava molto il lato di ottimizzazione ma solo che funzionasse, quindi non uso servlet ma solo jsp puro, la mia idea era quella di strutturare la pagina galleria.jsp in modo tale da stamparmi tutti i dati del database i forma tabellare e di affiancare questi dati ad un tasto compra che quando attivato richiamava la stessa pagina galleria.jsp che risconoscendo che il tasto compra è stato attivato provvedeva a cancellare quella riga... mi sembrava tutto molto semplice anche se non ottimale come soluzione.
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 72
|
Capisco, non sò se può funzionare. Prova a mettere nell'action della form del tasto compra l'url du galleria.jsp con il parameter. Una cosa del tipo galleria.jsp/?compra=valore.
Poi Sempre nella jsp recuperi il parameter. Ma sicuramente è molto ingarbugliata. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:55.











Io usando Bootstrap, Jquery e soprattuto i tag di tomcat per l'interazione con il db avrei scritto un quarto del codice.








