- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- questionario html/jsp aiuto?!?
-
questionario html/jsp aiuto?!?
In pratica vorrei fare questo sito in JSP con queste 10 domande con le varie opzioni (realizate con le checkbox) insomma le risposte devono essere mandate o comunque salvate in un database che elaborerà le varieopzioni scelte per ogni domanda.Infine clicando su una aposito link che si collegherà ad un file Risultati.jsp che visualizzera i risultati(cioè quante persone hanno scelto quella determinata opzione) in un grafico a istogramma.
<html> <head><title>QUESTIONARIO - PERITI INFORMATICI</title></head> <body> <body bgcolor=#CCFFFF> Ipotizzando che lei debba assumere per la propria azienda un collaboratore informatico, quali di queste caratteristiche pensa debba avere? </p> **<big>COMPETENZE TECNICHE:</big>** **1. Secondo lei,quali delle seguenti capacità deve essere in possesso l?informatico?**</p> <form action="quest.jsp"> <input name="risp1" type="checkbox" value="00">[url="cap_analisi.html"]Capacità di analisi <input name="risp1" type="checkbox" value="01">[url="cap_problemi.html"]Capacità di risolvere i problemi <input name="risp1" type="checkbox" value="02">[url="cap_sintesi.html"]Capacità di sintesi <input name="risp1" type="checkbox" value="03">Predisposizione allo studio <input name="risp1" type="checkbox" value="04">[url="cap_sperim.html"]Capacità di sperimentazione **2. Quale dei seguenti sistemi operativi l?informatico dovrebbe saper utilizzare?**</p> <form action="quest.jsp"> <input name="risp2" type="checkbox" value="10">Macintosh <input name="risp2" type="checkbox" value="11">Windows <input name="risp2" type="checkbox" value="12">Linux</a> <input name="risp2" type="checkbox" value="13">altro **3. Quale dei seguenti linguaggi l?informatico deve saper utilizzare?**</p> <form action="quest.jsp"> <input name="risp3" type="checkbox" value="20">Java <input name="risp3" type="checkbox" value="21">C/C++ <input name="risp3" type="checkbox" value="22">SQL <input name="risp3" type="checkbox" value="23">Pascal <input name="risp3" type="checkbox" value="24">HTML <input name="risp3" type="checkbox" value="25">Fortran <input name="risp3" type="checkbox" value="26">COBOL <input name="risp3" type="checkbox" value="27">Assembler <input name="risp3" type="checkbox" value="28">altro **4. Di quali conoscenze h/w l?informatico deve essere in possesso?**</p> <form action="quest.jsp"> <input name="risp4" type="checkbox" value="30">Assemblaggio <input name="risp4" type="checkbox" value="31">Riparazione <input name="risp4" type="checkbox" value="32">Manutenzione <input name="risp4" type="checkbox" value="33">Altro **<big>CARATTERISTICHE PERSONALI:</big>** **5. Qanto tepmpo dovrebbe dedicare al lavoro l'informatico? **</p> <form action="quest.jsp"> <input name="risp5" type="checkbox" value="40">Tempo pieno <input name="risp5" type="checkbox" value="41">Partime <input name="risp5" type="checkbox" value="42">Altro **6. Che tipo di contratto offrirebbe al suo ipotetico dipendente?**</p> <form action="quest.jsp"> <input name="risp6" type="checkbox" value="50">Temporaneo <input name="risp6" type="checkbox" value="51">Tempo indeterminato <input name="risp6" type="checkbox" value="52">Interinale **7. E' chiaro che la personalità di una persona influisca sulla modalità di lavoro, per cui di quali delle seguenti caratteristiche caratteriali dovrebbe essere in possesso un lavoratore?**</p> <form action="quest.jsp"> <input name="risp7" type="checkbox" value="60">Ambizioso <input name="risp7" type="checkbox" value="61">Socievole <input name="risp7" type="checkbox" value="62">Riservato <input name="risp7" type="checkbox" value="63">Modesto <input name="risp7" type="checkbox" value="64">Tenace <input name="risp7" type="checkbox" value="65">Competitivo <input name="risp7" type="checkbox" value="66">Dotato di autocontrollo <input name="risp7" type="checkbox" value="67">Autostima <input name="risp7" type="checkbox" value="68">Altro **<big>CAPACITA' PROFESSIONALI:</big>** **8. Quali delle seguenti capacità gestionali, secondo lei, l'informatico dovrebbe possedere?**</p> <form action="quest.jsp"> <input name="risp8" type="checkbox" value="70">Capacità di organizzare <input name="risp8" type="checkbox" value="71">[url="cap_controllo.html"]Capacità di controllo <input name="risp8" type="checkbox" value="72">Capacità di attuazione/realizzazione <input name="risp8" type="checkbox" value="73">Capacità di definire la priorità <input name="risp8" type="checkbox" value="74">Capacità d'iniziativa **9. Quali lingue dovrebbe saper parlare in modo scorrevole l'informatico ?**</p> <form action="quest.jsp"> <input name="risp9" type="checkbox" value="80">Inglese <input name="risp9" type="checkbox" value="81">Francese <input name="risp9" type="checkbox" value="82">Tedesco <input name="risp9" type="checkbox" value="83">Spagnolo <input name="risp9" type="checkbox" value="84">Altro **10. Quali capacità (innovative) deve possedere l'informatico?**</p> <form action="quest.jsp"> <input name="risp10" type="checkbox" value="90">[url="disp_cambiamento.htm"]Disponibilità al cambiamento <input name="risp10" type="checkbox" value="91">Autonomia <input name="risp10" type="checkbox" value="92">Elasticità intellettuale, originalità [url="quest.jsp"]<input type="submit" value="INVIA"> </p> </form> </font> </body> </html>
Ho preso come modello di riferimento questo esempio di pagina in JSP SONDAGGIO
*
L'applicazione pratica con jsp che viene analizzata in seguito consiste nella creazione di un sondaggio, in cui gli utenti di un sito possono rispondere ad una domanda scegliendo tra le risposte proposte ed eventualmente visualizzare i risultati parziali delle votazioni. Come per tutti i sondaggi seri realizzati per un sito Internet è previsto il controllo del doppio voto, reso impossibile dalla memorizzazione degli indirizzi ip degli utenti che votano. L'applicazione è costituita da 4 file:sondaggio.htm, contenente il form da cui l'utente risponde alla domanda
vota.jsp, che esegue la votazione proveniente dal form
risultati.jsp, che visualizza i risultati parziali delle votazioni
sondaggio.mdb, il database che gestisce tutto il sondaggio. Questo è costituito da due tabelle. La prima "frequenza" contiene un campo chiamato "risp" di tipo byte che indica il numero della risposta, e un campo "frequenze" di tipo intero che indica il numero di volte che si è votato per la rispettiva risposta. Nell'esempio, con 4 possibili risposte al sondaggio, la tabella è stata completata inserendo nelle prime 4 righe del campo "risp" i valori 0-1-2-3 e nel campo "frequenze", ovviamente, i valori 0-0-0-0. La seconda tabella si chiama "ip_tab" e contiene in un campo "ip" di tipo testo la lista degli indirizzi ip di tutti gli utenti che hanno effettuato il voto. Vediamo nel dettaglio gli altri 3 file:*
Sondaggio.htm
<html><head> <title>Sondaggio</title> </head> <body> **<big>Domanda:</big>** <form action="vota.jsp"> <input name="risposta" type="radio" value="0">Risposta 1 <input name="risposta" type="radio" value="1">Risposta 2 <input name="risposta" type="radio" value="2">Risposta 3 <input name="risposta" type="radio" value="3">Risposta 4 <input type="submit" value="vota"> </form> [url="risultati.jsp"]Visualizza i risultati parziali </font> </body> </html>
Vota.jsp
*
Questo file esegue in pratica la votazione, aggiornando il database dopo aver fatto il controllo sull'ip dell'utente. Non deve essere necessariamente modificato. Al limite si possono personalizzare i messaggi di eseguita o fallita votazione.*<html> <head> <title>Sondaggio</title> </head> <body> <font face="verdana" color="#3300ff" size="2"> <% page errorPage = "PaginaErrore.jsp" %> <%@ page language="java" import="java.sql.*" %> <% Connection conn = null; //carica il file di classe del driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //crea la connessione con l'origine dati conn = DriverManager.getConnection("jdbc:odbc:sondaggio","",""); //crea lo statement Statement st = conn.createStatement(); //legge il parametro contenente la risposta String preferenza = new String (request.getParameter("risposta")); String ip = new String(request.getRemoteAddr()); ResultSet rs = st.executeQuery("SELECT ip from ip_tab WHERE ip LIKE '"+ip+"'"); if(!rs.next()){ //l'ip non ha mai votato //esito dell'aggiormanento al Data base int esito; //crea la tringa SQL per l'aggiornamento String stringaSql = new String ("INSERT INTO ip_tab (ip) VALUES ('"+ip+"')"); st.executeUpdate(stringaSql); //crea la stringa SQL per l'aggiornamento stringaSql = "UPDATE frequenze SET frequenza=frequenza+1 WHERE risp LIKE '"+preferenza+"'"; esito = st.executeUpdate(stringaSql); //controlla che tutto sia andato bene if (esito==1) out.println("Votazione eseguita con successo"); else out.println("Errore, non stato possibile eseguire la votazione"); }//if else{ //l'utente ha gia votato out.println("Spiacenti, hai già votato! "); out.println("Per ragioni di credibilità del sondaggio "); out.println("ogni visitatore può votare una sola volta "); }//else st.close(); conn.close(); %> [url="risultati.jsp"]Visualizza i risultati parziali </font> </body> </html>
Risultati.jsp
*
Questo è il file che esegue il compito più complicato. Deve estrarre dal database il numero di utenti che hanno votato in totale e per ogni singola risposta, calcolare la percentuale e stampare una breve tabella di riepilogo e un grafico che riassume visivamente l'andamento del sondaggio. Nel file appena visto deve essere modificato il numero di possibili risposte (riga 20) e il valore delle stringhe contenenti le risposte (righe 25-28). Tutto il resto del codice può rimanere invariato.*<html> <head> <title>Risultati del sondaggio</title> </head> <body bgcolor=#FFFF99><center> **<big>Domanda del sondaggio**</big> <% page errorPage = "PaginaErrore.jsp" %> <%@ page language="java" import="java.sql.*" %> <% Connection conn = null; //carica il file di classe del driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //crea la connessione con l'origine dati conn = DriverManager.getConnection("jdbc:odbc:sondaggio","",""); //crea lo statement Statement st = conn.createStatement(); /* --- DEFINIZIONE DI VARIABILI --- */ int numRisp = 4; //numero possibili risposte int votiTot; //numero totale dei voti float percentuale; //percentuale per ogni risposta int frequenze[] = new int[numRisp]; //numero di voti per ogni risposta String risposte[] = new String[numRisp]; //array di stringhe con le risposte risposte[0]="Risposta 1"; risposte[1]="Risposta 2"; risposte[2]="Risposta 3"; risposte[3]="Risposta 4"; //crea il recordset -> calcolo dei voti totali ResultSet rs = st.executeQuery("SELECT sum(frequenza) as tot from frequenze"); rs.next(); votiTot = rs.getInt("tot"); out.println("Totale dei voti: "+votiTot+" "); //calcolo dei voti per ogni singola risposta e stampa for (int i=0; i<numRisp; i++){ rs=st.executeQuery("SELECT sum(frequenza) as tot from frequenze WHERE risp = "+i); rs.next(); frequenze[i]=rs.getInt("tot"); out.println(risposte[i]+": "+frequenze[i]+" voti "); }//for %> <table align=center border=0> <%//creazione del grafico dei voti for (int i=0; i<numRisp; i++){ //calcolo della percentuale percentuale = (float)frequenze[i]/votiTot*100; out.println("<tr valign='center' align='left'><td>"); out.println(risposte[i]+"</td><td>"); out.println("![image](blu.gif)"); out.println((int)percentuale+"%</td>"); }//for %> </tr> </table> <% st.close(); rs.close(); conn.close(); %> </body> </html>
QUESTA PARTE DI CODICE DEL FILE Vota.jsp
vorrei modificarla in modo tale da acquisire ed elaborare le 10 riposte//crea la stringa SQL per l'aggiornamento stringaSql = "UPDATE frequenze SET frequenza=frequenza+1 WHERE risp LIKE '"+preferenza+"'"; esito = st.executeUpdate(stringaSql);
LO STESSO PER QUESTA PARTE DI CODICE DEL FILE Risultati.jsp
vorrei modificarla in modo tale da acquisire ed elaborare le 10 riposte//crea il recordset -> calcolo dei voti totali ResultSet rs = st.executeQuery("SELECT sum(frequenza) as tot from frequenze"); rs.next(); votiTot = rs.getInt("tot"); out.println("Totale dei voti: "+votiTot+" "); //calcolo dei voti per ogni singola risposta e stampa for (int i=0; i<numRisp; i++){ rs=st.executeQuery("SELECT sum(frequenza) as tot from frequenze WHERE risp = "+i); rs.next(); frequenze[i]=rs.getInt("tot"); out.println(risposte[i]+": "+frequenze[i]+" voti "); }//for %>
IL MIO VERO PROBLEMA e che credo che il principio sia lo stesso di questo /i file o sito SONDAGGIO ma non riesco a capire ma sopratutto a trovare il modo pratico ( insomma la parte di codice che dovrei modificare se non cambiare) in modo tale da elaborare queste maledette 10 domande.
Per non parlare del database, vorrei sapere cosa dovrei o potrei cambiare per il mio scopo.Quando penso alla soluzione di questo sito o problema, mi chiedo come sarebbe questo esempio di SONDAGGIO SE INVECE DI UNA DOMANDA CON 4 RIPOSTE NE AVESSE 10 DI DOMANDE CON ALTRE TANTE RISPOSTE ed in quelle due parti di codice qui sopra in cui vedo e credo andrebbero fatte le modifiche.
Se qualcuno mi volesse aiutare gli sarei veramente grato e veramente urgente va bene qualsiasi suggerimento GRAZIE CIAO
-
Ciao sonik benvenuto nel forum
Purtroppo il tuo post richiederebbe molto tempo sol per essere studiato a fondo e comunque di JSP ne so pochissimo
Il tempo è tiranno specie in questo periodo... spero si trovi a passare qualcuno che abbia già affrontato il tuo stesso problema e sappia consigliarti una soluzione
Ciao