我正在尝试检查复选框是否已被选中并显示用户的复选标记,以查看他们何时检查帐户设置。我想知道如何使用PHP解决此问题,以便每次用户查看其帐户设置时都会显示复选标记?
这是HTML。
<input type="checkbox" name="privacy_policy" id="privacy_policy" value="yes" />
答案 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并与其余复选框一起回显。否则,复选框将在没有属性的情况下回显,因此将取消选中。