2016-04-26 16 views
-1

フォームのユーザーが都市、国、url_of_city、目的地の種類(夏、冬、クリスマス)の3つのチェックボックスを与えなければならないJSPページがあります。彼は最大2ボックスをチェックすることができますので、後でこの宛先を検索できるようにするために、この結果をデータベースに挿入する必要があります。どうすればいいですか?チェックボックス(JSPページ)とmysqlデータベースに挿入

のMySQLコード:

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フォームコード:挿入用

<%@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:

<%@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

質問が不明です –

+0

質問は明確ではなく、どちらも列名ではありません。キーフィールドに名前を付けると、解決策がより明確になる場合があります。 – Yuck

+0

なぜJSPコードを追加しましたか?これがあなたのデータベース設計にどのような影響を与えますか? – Yuck

答えて

1

非常に簡単な解決策は、あなたのバイナリ値を割り当てることであろうチェックボックス。したがって、1,2,3ではなく1,2,4を使用できます。次に、選択したボックスの値を合計し、この一意の値を保存します。

あなたのコードのように:下記の真理値表はあなたに別の値を示して

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

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

ソリューションは、SQL関連していないではありませんが、率直に言って、どちらの質問は... 幸運です!

+0

これは良いアイデアですが、これはどのようにjspコードで実装することができますか? – JHk1821

+0

私は明確にするために私の答えを更新しています... –

関連する問題