HelpMePlease
20
2019-11-17 20:52:36
3
134

checkbox 배열로 받고 DB에 저장할 때 어떻게 해야할지 모르겠어요


체크박스는 총 10개가 있다고 가정하고

각각 체크박스들은 웹 상에서 이름이 1~ 10까지 붙여지고

name속성은 모두 ch[ ] 이고

value속성은 순서대로 a, b, c ..... h, i, j 라고 하며


아래와 같이 체크박스 체크여부를 담는 DB가 이렇게 있다고 해볼게요

===============

DB명: chbox

필드: 

op1, op2, op3.....op10

데이터형: 모두 varchar(10)

===============


자 여기서 체크박스 2와 3 이렇게 2개를 체크했다고 해요.


그럼 form값을 넘겨받은 부분에서 

$CH = $_POST['ch'] 라고 이렇게 배열명만 써서 $CH에 담는다면

딱 $CH는 인덱스를 0, 1까지만 쓸수 있잖아요? 2개를  체크했으니까요

바로 위 특징 때문에 이런 문제를 겪더라구요..


저 두 체크박스 value값을 op4, op6에 넣는다고 가정)

여기서 어떻게하면 두 값을 특정 필드에다 삽입할 수 있을까요?


insert into문에 where절을 같이 쓸 수 있는 거도 아닌데 말이죠 ㅠ

제가 체크박스 2번과 3번을 체크했다면


insert into chbox (op1, op2 ..... op 10) values ?????????????

저 ???부분에 뭘 어떻게 해줘야하나요?

아니면 다른 방법이 있나요? 설명이 부족할라나요... 검색해


설명이 부족할라나요... 검색해

봐도 이런 경우는 못찾아보겠더군요

제가 못알아 본걸 수도있지만요...



0
0
  • 답변 3

  • Java개발자입니다
    563
    2019-11-17 20:54:45

    checkbox는 서버로 넘길떄 동일한 name속성으로 배열 로 넘기셔야합니다. 그리고 디비에서 인설트할때

    반복문을 돌려서 인설트를 합니다.

    0
  • HelpMePlease
    20
    2019-11-18 01:03:18

    그러니까 제 말은 뭐냐면요

    체크박스가 2개 체크됐다고 하면

    저기 $CH란 배열도 전체 크기 10이 아닌 2만큼만 생성되잖아요


    그러면 아래처럼for문으로 돌린다고 치면

    foreach ($ch as $i)...

    반드시 DB의 첫번째 필드와 두번째필드에 삽입 될 수 밖에 없는거잖아요?

    여기서 만약 자기가 4번째와 5번째 필드에 넣고싶다면

    어떻게 해야하는지가 의문인거에요 ㅠ


    0
  • rorent
    98
    2019-11-18 10:41:54

    DB 컬럼과 jsp name 을 매칭 시켜야 가능할거 같네요

    배열 방법으로 받는건 위 답변에 추가한 문제 때문에 안될거 같습니다.

    DB 컬럼별로 name 을 따로 지정해서 하는방법이 해결책인거 같네요


    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.