2010-04-07 3 views
1

Я пытаюсь проверить, был ли установлен флажок и отобразить галочку для пользователя, чтобы увидеть, когда они проверяют настройки учетной записи. Я хочу знать, как я могу исправить эту проблему с помощью PHP, чтобы галочка отображалась каждый раз, когда пользователь просматривал свои настройки учетной записи?Задача checkbox 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" /> 

EDIT: Что я хотел бы сделать, это привязать код к событию установите флажок (используя библиотеку как 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, следует ли проверять этот флажок, вы можете сделать что-то вроде

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

это будет сделать флажок по умолчанию для проверяемого, если $somevar верно.

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

$someBoolean Где имеет логическое значение (истина/ложь) значения, было ли оно проверено до или нет (значение, полученное из базы данных, например).

Если true это приведет:

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

еще:

<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); 

Это предполагает, что информация хранится в колонке под названием «privacy_policy» в таблице называется user_settings и что вы уже знаете $ user_id. Настройка политики конфиденциальности теперь находится в $user_settings['privacy_policy']. Я также предполагаю, что это логическое значение, где true означает, что вы хотите его проверить, а false означает, что вы не хотите, чтобы он был проверен.

Возможно, вы также можете получить настройку с пользовательского ввода, например, после изменения переменной. В этом случае просто найдите переменную в $ _POST или $ _GET, например. $ _POST ['privacy_policy'] и продолжить эту переменную.

Так что теперь сделайте следующее:

если ($ user_settings [ 'privacy_policy']) $ проверено = "проверено =" проверено"; else $ checked = ''; эхо «„;

Если $ user_sesstings. [“Privacy_policy '] верно, $ проверено будут установлены и повторили вместе с остальным флажком В противном случае флажок будет вторит без атрибута и так будет снят