2009-08-28 3 views
0

에서 체크 박스의 값을 변경 내가 체크 상자 양식을 가지고있다. 나는 항상 값이 'on'또는 ''(empty)라고 생각했던 체크 박스의 값을 설정하지 않았다. 나는 'on'값을 데이터베이스에 전달합니다. 문제는 데이터베이스의 값을 ''(비어 있음)으로 변경하지 않는 상자의 선택을 취소 한 경우입니다. 입력 상자와 같은 나머지 양식 값이 변경됩니다. 내 체크 박스에 내 코드는 다음과 같습니다데이터베이스

<input type="checkbox" name="form3_one_2" <?php if($form3_one_2 == 'on'){print 'checked="checked"';}?> /> 

값을 폼에 입력해야합니까? 브라우저에서 선택한대로 당신처럼 보이는, 그것을 쓰고 싶은 경우 체크 박스의 결과를 얻고 싶다면

+1

무엇 데이터베이스 및 형태는 무엇을 쓴거야? 접속하다? – MartW

답변

0

,

<input name="foo" selected="selected" ... /> 

를 사용, 그것은 참으로 때 "에"해야한다 양식 (또는 GET을 사용하는 경우 쿼리 링)을 통해 전달합니다.

+0

'selected'속성은 무엇입니까 ??? – strager

+0

아. 나는 checkbox가 checked = "checked"를 사용한다고 생각한다. 선택한 항목은 라디오 상자 (또는 선택할 수있는 항목)에 적용됩니다. 그것은 그것이 선택 및/또는 체크되었음을 의미합니다. – Rushyo

1

당신은 형태의 체크 박스 (들)을 추적한다. 양식이 게시되면, 그런데

<?php 

if('POST' == $_SERVER[ 'REQUEST_METHOD' ]) 
{ 
    /* for security reasons just check 
    * if it isset and set it to 'on' yourself 
    * never trust users input, always validate/sanitize 
    */ 
    $form3_one_2 = isset($_POST[ 'form3_one_2' ]) ? 'on' : '' ; 
} 

?> 

같은 작업을 수행합니다 어디 어쨌든에서 오는 당신의 $ form3_one_2입니까? 나는 아직도 쥬라기 시대의 거대한 안보 구멍 인 ini setting register_globals를 사용하고 있다는 느낌이 들었습니다. register_globals가 off로 설정되어 있는지 프로그램하십시오.

+0

나는 당신의 말을 잘 모르겠습니다. 우선 보안은 문제가 아닙니다! 나는 내가 생각하는 것을 말로 표현하는 것을 항상 잘하지 못하므로 다시 시도하도록하겠습니다. 'on'값이 데이터베이스에 저장됩니다. (이 작동) 내 문제는 사용자가 양식을 업데이트 할 수있게하려는 것입니다. 는 이전 정보를 읽도록 위해서는 나는 양식에이 코드를 넣어 이이 양식을 채 웁니다 데이터베이스의 정보. 양식을 선택 취소하고 다시 제출하면 'on'값이 여전히 데이터베이스에 있습니다. (저의 문제입니다) – PeggyMe

+0

양식의 각 섹션에서 각 상자를 추적하기 위해 $ form3_one_2 확인란의 이름을 지정했습니다. 양식에 200 개 이상의 체크 박스가 있습니다. – PeggyMe

+0

문제가 잘 이해하고 있습니다. 내 대답은 명확한 설명이 필요하다고 생각합니다. 내가 말하고자하는 것은받는 쪽 (제출 된 양식을 처리하는 PHP 스크립트)에서 해당 양식에있는 체크 박스를 알고 있어야한다는 것입니다. 확인란을 선택하지 않으면 값이 제출되지 않기 때문입니다. 따라서 확인란이 선택되지 않았는지 확인하는 유일한 방법은 값이 부족한 지 테스트하는 것입니다. 양식에있는 체크 박스에 값이 수신되지 않으면 확인란이 선택되지 않은 것입니다. 즉 어떤 = $ form3_one_2는 isset ($ _POST [ 'form3_one_2'])? 'on': ''; 않습니다. –

관련 문제