PHP& MySQL检查了复选框问题

时间:2010-04-07 23:30:01

标签: php mysql

我正在尝试检查复选框是否已被选中并显示用户的复选标记,以查看他们何时检查帐户设置。我想知道如何使用PHP解决此问题,以便每次用户查看其帐户设置时都会显示复选标记?

这是HTML。

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

4 个答案:

答案 0 :(得分:0)

你的意思是你设置了哪个属性,以便选中复选框?

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

编辑:我会做的是将一些代码绑定到复选框的click事件(使用类似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"'; ?>/>

答案 1 :(得分:0)

我不完全确定你的问题是什么。如果您在PHP中知道是否应该选中该复选框,则可以执行类似

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

如果$somevar为真,这将使复选框默认为检查。

答案 2 :(得分:0)

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

其中$someBoolean包含布尔值(true / false)值,无论之前是否检查过(例如,从数据库中检索的值)。

如果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" />

答案 3 :(得分: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']并继续使用该变量。

现在执行以下操作:

if($ user_settings ['privacy_policy'])$ checked =“checked ='checked'”;    else $ checked ='';    echo“';

如果$ user_sesstings ['privacy_policy']为真,则会设置$ checked并与其余复选框一起回显。否则,复选框将在没有属性的情况下回显,因此将取消选中。