2016-04-26 4 views
-1

Ich habe eine JSP-Seite, die Benutzer in Form muss ein Ziel geben: Stadt, Land, url_of_city und 3 Kontrollkästchen mit der Art des Ziels (Sommer, Winter, Weihnachten), Er kann maximal 2 Boxen prüfen, also muss ich die Ergebnisse daraus ziehen und sie in eine Datenbank einfügen, um später nach diesem Ziel suchen zu können, wie kann ich das machen?Checkbox (JSP PAGE) und Einfügen in MySQL-Datenbank

mysql Code:

CREATE TABLE DEST_C(ID_DEST_C INT(5),CATEGORY VARCHAR(45)) 
CREATE TABLE DEST(ID1_DEST INT(6),ID2_DEST INT (6),COUNTRY VARCHAR(40),CITY VARCHAR(40),URL VARCHAR(5400)); 

jsp Form Code:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>create dest</title> 
    </head> 
    <body> 
     <html> 
    <head> 
     <title>CREATE DESTINATION</title> 
     <meta charset="UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
     <h1> CREATING DESTINATION </h1> 
     <form name="createdest" method="get" action="create dest code.jsp"> 
     Country: <input type="text" required name="id8" /> <br> 
     City: <input type="text" required name="id9" /> <br> 
     URL Video: <input type="url" required name="id10" /> <br> <br> 
     <i><ins>Categorize the destination (max 2): </ins></i> <br> <br> 
     <input type="checkbox" name="id5" value="1" onClick="return KeepCount()" >Christmas<br> 
     <input type="checkbox" name="id6" value="2" onClick="return KeepCount()" >Winter <br> 
     <input type="checkbox" name="id7" value="3" onClick="return KeepCount()" >Summer <br> <br> 

     <input type="submit" value="CREATE DESTINATION" /> 


     <br> 


     </form> 
     <SCRIPT LANGUAGE="javascript"> 

function KeepCount() { 

var NewCount = 0 

if (document.createdest.id5.checked) 
{NewCount = NewCount + 1} 

if (document.createdest.id6.checked) 
{NewCount = NewCount + 1} 

if (document.createdest.id7.checked) 
{NewCount = NewCount + 1} 

if (NewCount == 3) 
{ 
alert('Pick Just Two Please') 
document.createdest; return false; 
} 
} 
</SCRIPT> 

JSP-Code für Einsätze:

<%@page import="java.sql.*" %> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>create dest code</title> 
    </head> 
    <body> 
     <% 
    int m[] = new int[5000]; String s[] = new String[5000];   
    Class.forName("com.mysql.jdbc.Driver"); 
    String myDatabase = "jdbc:mysql://localhost:3306/project_app?user=root&password=1234"; 
    Connection myConnection = DriverManager.getConnection(myDatabase); 
    Statement myStatement = myConnection.createStatement(); 
    boolean check=null!=request.getParameter("id5"); 
    boolean check1=null!=request.getParameter("id6"); 
    boolean check2=null!=request.getParameter("id7"); 
    String id8=request.getParameter("id8"); 
    String id9=request.getParameter("id9"); 
    String id10=request.getParameter("id10"); 
    String sqlString = "INSERT INTO DEST(COUNTRY,CITY,URL) VALUES ('"+id8+"', '"+id9+"','"+id10+"')"; 
    myStatement.executeUpdate(sqlString); 
    myStatement.executeUpdate(sqlString1); 
    myStatement.close(); 
    myConnection.close(); %> 
    </body> 
    <h1 style="color:blue;">Successful Registration </h1> 
</html> 
+1

Frage ist nicht klar, Sir –

+0

Die Frage ist nicht klar, und auch nicht die Spaltennamen. Wenn Sie Ihren Schlüsselfeldern bessere Namen geben, wird die Lösung möglicherweise deutlicher. – Yuck

+0

Warum haben Sie JSP-Code hinzugefügt? Welche Auswirkungen hat dies auf Ihr Datenbankdesign? – Yuck

Antwort

1

Eine sehr einfache Lösung wäre, einen binären Wert zuweisen, um Ihre Kontrollkästchen. Anstatt 1,2,3 könnten Sie 1,2,4 verwenden. Dann würden Sie die Werte der ausgewählten Felder summieren und diesen eindeutigen Wert speichern.

Wie im Code:

 
    `input type="checkbox" name="id5" value="1" (...)` 
    `input type="checkbox" name="id6" value="2" (...)` 
    `input type="checkbox" name="id7" value="4" (...)` 

Die Wahrheitstabelle Sie die verschiedenen Werte zeigt.

 
id:   ID5 ID6 ID7 Sum 
value:  1  2 4 
      x     1 
        x   2 
      x  x   3 
         x  4 
      x   x  5 
        x x  6 

Die Lösung wird nicht verwandt SQL, aber ehrlich gesagt, weder ist die Frage ... Viel Glück!

+0

yea gute Idee, aber das wie kann auf Jsp-Code implementiert werden? – JHk1821

+0

Ich habe meine Antwort für Klarheit aktualisiert ... –