2010-04-07 4 views
1

확인란을 선택했는지 확인하고 사용자가 계정 설정을 확인할 때 확인 표시를 표시하려고합니다. 나는 PHP를 사용하여이 문제를 어떻게 해결할 수 있는지 알고 싶기 때문에 사용자가 계정 설정을 볼 때마다 체크 표시가 표시됩니까?PHP 및 MySQL에 체크 박스 문제가 발생했습니다.

다음은 HTML입니다.

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" /> 

답변

0

확인란을 선택하도록 어떤 속성을 설정 했습니까?

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" checked="checked" /> 

편집 : 나는 어떻게 할 것인지, 다음과 같이, (jQuery를 같은 라이브러리를 사용) 체크 박스의 클릭 이벤트에 일부 코드를 결합이다 :

조작 실시간을 처리 할
$(document).ready(function() { 
    $("#privacy_policy").click(function() { 

     // block the checkbox 
     $(this).attr("disabled", "disabled"); 
     var checked = 0; 
     if($(this).is(":checked")) { 
      checked = 1; 
     } 

     // send the checked state to PHP script 
     // if the update has been successful, the script echos a '1' 
     $.post('account.php', { checked: checked, function(resp) { 

      // update has been successful 
      if(resp == 1) { 

       // unblock the checkbox, the current 
       // checked state reflects the stored value 
       $(this).removeAttr("disabled"); 
      } else { 
       alert("settings could not be updated"); 
      } 
     }); 

    }); 
}); 

확인란을 클릭 할 때마다 해당 옵션의 설정을 (나는 그것이 어쨌든 당신이 의미 한 것이라고 생각합니다). 내부적으로 $_POST['checked'] 변수에 대해 조치를 취해야합니다.

그냥 짧은 태그, 예를 들어, 사용, 저장 값에 따라 체크 박스의 초기 상태 (처음 페이지가로드)를 설정하려면 :

<?php 
$isChecked = $_SESSION['someSetting']; // 1 or 0, for example 
?> 
<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" <?php if($isChecked) echo 'checked="checked"'; ?>/> 
+0

사용자가 선택을 취소 할 때까지 항상 확인한 다음 표시 할 때만 확인란을 표시하고 싶습니다. – BeepU

+0

사용자가 사이트에있을 때 항상 표시하고 싶습니까? 이 경우 특정 사용자의 취향에 맞게 저장해야합니다. –

0

내가 완전히 확실하지 않다 무엇 질문 입니다. 확인란을 선택할지 여부는 PHP 알고있는 경우에, 당신은 $somevar에 해당하는 경우 검사중인에있는 확인란의 기본을 만들 것입니다

echo '<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes"'; 
if ($somevar) echo ' checked="checked" '; 
echo ' />'; 

같은 것을 할 수 있습니다. $someBoolean 부울이 이전 여부 (예를 들어 데이터베이스에서 검색 한 값) 확인 여부 (참/거짓) 값을 보유

0
<?php 
    $checked = $someBoolean ? ' checked="checked"' : ''; 
?> 
<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes"<?php echo $checked; ?> /> 

. 다른

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" checked="checked" /> 

:

true 경우가 발생합니다

<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" /> 
0

난 당신이 사용자의 설정이 약간의 설명을 데이터베이스에 저장되어 있다고 가정합니다. 이 가정하면 MYSQL 다음 작업을 수행 할 수 있습니다 :

$query = " 
    SELECT privacy_policy FROM user_settings WHERE user_id = $user_id 
    "; 
$result = mysql_query($query); 
$user_settings = mysql_fetch_assoc($result); 

이 정보가 테이블이라고 user_settings에서 "PRIVACY_POLICY"라는 열을 저장되어 있다고 가정하고 이미 $의 USER_ID를 알고. 개인 정보 보호 정책 설정은 이제 $user_settings['privacy_policy']에 있습니다. 나는 또한 그것이 사실이라고 당신이 체크하기를 원한다는 것을 의미하고, false는 그것이 체크를 원하지 않는다는 것을 의미하는 부울이라고 가정합니다.

변수를 변경 한 후와 같이 사용자 입력에서 설정을 가져 오는 경우도 있습니다. 이 경우 $ _POST 또는 $ _GET에서 변수를 찾으십시오. $ _POST [ 'privacy_policy'] 대신 해당 변수를 계속 사용하십시오.

는 이제 다음을 수행하십시오

경우 ($ user_settings [ 'PRIVACY_POLICY']) $ = "확인 = '확인'을"확인; else $ checked = ''; 는 "에코 ';

$ 경우 user_sesstings가.'PRIVACY_POLICY '], $ 설정하고 체크 박스의 나머지와 함께 에코됩니다 확인 그렇지 않으면, 체크 박스 속성없이 에코 될 것이며 그렇게되지 않은 사실 일 것입니다