질문/조언질답게시판
Extra Form
PHP PHP 7.0
CMS XpressEngine

 

관리자 문의 게시판 위젯(contactfree)의 개조를 통해

비밀글 작성, 비밀번호 설정, select, password 등 다른 원하는 사항은 다 적용에 성공했는데

유독 input type="selectbox"만 뜻대로 되질 않네요...

 

js 파일에서 해당 name의 input 태그의 value를 다 자동으로 가져오다보니 체크 여부에 상관 없이 다 긁어오는 것 같은데요,

체크한 selectbox의 value만 가져오도록 하려면 어느 부분을 어떻게 고치는 게 좋을까요?

  • profile
    input type="selectbox"가 있나요?;
  • profile profile
    아차, 제가 설명을 잘못 드렸네요;; selectbox 가 아니라 checkbox 입니다.
    원본 코드에서 잘못 적은 것은 아니고 그냥 제가 설명을 잘못 적었습니다^^;;
  • profile
    1. 라디오, 텍스트, 셀렉트, 텍스트에어리어와 체크박스의 아주 큰 차이점이 하나 있습니다.
    바로 입력값이 1개냐 여러개냐의 차이입니다.
    원칙적으로 하면 체크박스도 입력값이 1개입니다. 체크하면 밸류의 값을, 체크하지 않으면 빈값을 전달하죠.
    그런데 체크박스를 그 용도로 쓰지는 않죠. 하나의 항목에서 여러 개를 선택할수 있는 용도로 사용하기 위해 씁니다.

    2. 범용 입력폼에서는 항목당 입력값은 1개라는 것입니다.
    여러 개를 할당하는 것은 그것을 처리하는데 여러가지 복잡함이 생깁니다.
    입력값이 5개라면 db에 입력할때는 "항목1 구분자 항목2 구분자 항목3 구분자 항목4 구분자 항목5" 이런식으로 들어가야 할텐데 이게 또 문제가 되는 것이 항목명을 중간에 바꾸면 데이터가 꼬인다는 것입니다.
    그렇게 되면 "항목1이름 구분자1 항목2값 구분자2 항목2이름 구분자1 항목2값 구분자2 ..."이런식으로 넣어줘야 한다는 것이죠.
    이렇게 넣기 위해서는 db에 입력하는 단계나, 값을 넘기기 전에 자바스크립트에서 값을 하나로 합쳐줘야 합니다.
    값을 보여주거나, 수정할때도 체크박스는 처리해줄 것이 많습니다.

    3. xe는 범용 솔루션으로 위의 것을 고려해서 모든 문제를 없애고 만들기가 애매합니다.
    입력단은 코어나 모듈에서 담당할테니 위젯이 자바스크립트를 통해서 값을 넘긴다면 자바스크립트에서 체크박스로 된 것의 값을 선처리 한 후 넘기면 될것 같기는 하지만 해당 코드를 본게 아니라 확답은 아닙니다.