채택완료

체크박스 POST로 전달하기....질문좀..

2020-10-28 (수) 17:22:47 3,426

라디오나 텍스트는 잘되는데 ㅠ 체크박스가 어려워서요..

초보적인 질문이지만 조언 부탁드립니다 ㅠㅠ

--입력페이지--

Copy
<form name ="frm" action="javascript:checkForm(document.frm)" method="POST">

        <label><input type="checkbox" name="fruit[]" value="사과">사과</label>
        <label><input type="checkbox" name="fruit[]" value="딸기">딸기</label>
        <label><input type="checkbox" name="fruit[]" value="바나나">바나나</label>

 

        <label><input type="checkbox" name="color[]" value="노랑">노랑</label>
        <label><input type="checkbox" name="color[]" value="파랑">파랑</label>
        <label><input type="checkbox" name="color[]" value="빨강">빨강</label>

        

        <input type="submit" name="submit" value="전송">

</form>

--출력페이지--

Copy
<div><?php echo $_POST['fruit']?></div>

<div><?php echo $_POST['color']?></div>

별도의 제이쿼리로

Copy
function checkForm(frm){
    var chkbox1 = frm['fruit[]'];

    var chkbox2 = frm['color[]'];
    var cnt = 0;

    for (var i = 0 ; i < chkbox1.length; i++) {
        if (chkbox1[i].checked) {
           cnt++;
        }
    }
    for (var i = 0 ; i < chkbox2.length; i++) {
        if (chkbox2[i].checked) {
           cnt++;
        }
    }

    document.frm.action = "form_result.php";
    document.frm.submit();
}

ㅜㅜ출력페이지가 호출이 안되드라구요...ㅠㅠ

뭔가 result 갈때도 엄청 느려지고..

|

답변 3개

채택된 답변
+20 포인트

체크박스는 배열로 넘어가니 php에서 받을 때

var_dump($_POST) 로 출력해 보시면 됩니다. 아니면

print_r($_POST) 로 확인해 보셔도 되구요.

2020-10-28 (수) 17:32:15

제이쿼리부분은 필요없어보이는데요

cnt를 계산해놓고 쓰는게 안보이네요

Copy
<form name ="frm" action="javascript:checkForm(document.frm)" method="POST">
        <label><input type="checkbox" name="fruit" value="사과">사과</label>
        <label><input type="checkbox" name="fruit" value="딸기">딸기</label>
        <label><input type="checkbox" name="fruit" value="바나나">바나나</label>
 
        <label><input type="checkbox" name="color" value="노랑">노랑</label>
        <label><input type="checkbox" name="color" value="파랑">파랑</label>
        <label><input type="checkbox" name="color" value="빨강">빨강</label>
        
        <input type="submit" name="submit" value="전송">
</form>

변경내용

fruit[] -> fruit

color[] -> color

스크립트도 동일합니다.

스크립트

Copy
function checkForm(frm){
    /* 체크박스가 하나도 선택되지 않았을때를 검증하는 소스인 것 같은데 사용되지 않으면 제거
    var chkbox1 = frm['fruit'];
    var chkbox2 = frm['color'];
    var cnt = 0;
    for (var i = 0 ; i < chkbox1.length; i++) {
        if (chkbox1[i].checked) {
           cnt++;
        }
    }
    for (var i = 0 ; i < chkbox2.length; i++) {
        if (chkbox2[i].checked) {
           cnt++;
        }
    }
    */
    document.frm.action = "form_result.php";
    document.frm.submit();
}

답변을 작성하려면 로그인이 필요합니다.