salve a tutti
per un esame sto creando un sito di vendita d riviste online con eclipse
e ho un problema nella pagina del carrello.
alla fine di tutto vorrei memorizzare tutto ciò che il mio cliente ha acquistato, nel database,cioè la parte dei dati che mi interessa è quella che mi da' l'ultimo for(la parte in verde)
purtroppo nn ho molta dimestichezza con gli array..ho provato con due opzioni:
1.metter il form fuori dal for ma così perdo tutti i valori che aggiunge ad ogni ciclo
2..mettere il form dentro il for????e tutte le volte richiamare il valore nell'altra pagina?(e se poi prima di comprare decide di cambiare la quantità della rivista selezionata?io ho già inviato i dati al db...)
3..creare una Map?e memorizzarla in una variabile di sessione x poi passarla alla pagina di BackEnd?(lo stesso metodo usato x inviare i dati a QUESTA pag)
..uff....help!:)
la pagina è questa
(la parte incriminata è quella in viola, le righe in rosso sono sbagliate...qta è la quantità e idp è la chiave del prodotto
scusate se è un po' lunga ma ho lasciato i commenti fatti a lezione!!!
un grazie grazierrimo a chi vorrà/saprà aiutarmi!
codice:
java.util.ArrayList righe = (java.util.ArrayList)session.getAttribute("carrello");
//recupero il carrello che ho in sessione
String lista_ID = "";
//indipenmdentemente dal numero di prodotti, cicla ogni prodotto.Il numero di elementi è memorizzato in "size"
for(int t=0; t<righe.size(); t++){
java.util.HashMap riga = (java.util.HashMap) righe.get(t);
String qta = (String)riga.get("qta");//della "riga" mi dà il valore che ho chiamato qta
String idp = (String)riga.get("idp");
//qui sotto c'è la listaID, dei prodotti che poi andrò a richiamare nel DB
if(lista_ID.equals("")){
lista_ID = "'" + idp + "'" ;
}else{
lista_ID += ", " + "'" + idp + "'" ;
}
}
//recupero i nomi dei singoli prodotti,allora accedo al db
String SQL = "SELECT * from rivista where codice in (" + lista_ID + ");" ;
//seleziona tutte le colonne dalla tab prodotti dove il valore di id è compreso in una lista che vado ad indicargli(listaID)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String DBConnection = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + application.getRealPath("/WEB-INF/casaeditrice.mdb");
java.sql.Connection conn = java.sql.DriverManager.getConnection(DBConnection, "", "");
java.sql.PreparedStatement ps = conn.prepareStatement(SQL);
java.sql.ResultSet rs = ps.executeQuery();
//poi visualizzo i risultati:
while (rs.next()) {
out.print("<tr>");
out.print("<td>" + rs.getString("nome") + "</td>");
out.print("<td>" + rs.getDouble("prezzo_scontato") + "</td>");
String idDB =rs.getString("codice");
for(int t=0; t<righe.size(); t++){
java.util.HashMap riga = (java.util.HashMap) righe.get(t);
String idp = (String)riga.get("idp");
String qta = (String)riga.get("qta");
if( idp.equals( idDB )){
out.print("<td>");
out.print(qta);
out.print("</td>");
out.print("<td>");
out.print(idp);
out.print("</td>");
}
}
out.print("</tr>");
}
out.print("</table>aggiungi altro");
out.print("<form action='OrdiniBE.jsp' method='post'>");
out.print("<input type='hidden' name='qta' value='" + (String)riga.get("qta") + "'>");
out.print("<input type='hidden' name='idp' value='" + (String)riga.get("idp") + "'>");
out.print("
");
out.print("<input type='submit' value='FINE'>");
out.print("</form>");