我试图在默认情况下选中一个复选框,但我所尝试的一切似乎都不起作用。我不知道这是否与代码中的PHP有关。
function show_subscription_checkbox ($id='0') {
global $sg_subscribe;
sg_subscribe_start();
if ( $sg_subscribe->checkbox_shown ) return $id;
if ( !$email = $sg_subscribe->current_viewer_subscription_status() ) :
$checked_status = ( !empty($_COOKIE['subscribe_checkbox_'.COOKIEHASH]) && 'checked' == $_COOKIE['subscribe_checkbox_'.COOKIEHASH] ) ? true : false;
?>
<p <?php if ($sg_subscribe->clear_both) echo 'style="clear: both;" '; ?>class="subscribe-to-comments">
<input type="checkbox" name="subscribe" id="subscribe" value="subscribe" style="width: auto;" <?php if ( $checked_status ) echo 'checked="checked" '; ?>/>
<label for="subscribe"><?php echo $sg_subscribe->not_subscribed_text; ?></label>
</p>
这是一个wordpress插件,允许您订阅博客评论。
我试过
echo 'checked='"checked'" ';
echo 'checked="checked" ' ;
echo 'checked> ';
插件作者表示,您过去可以默认选中复选框,但现在不行了。
由于这在谷歌上显示为"默认选中的复选框",我想我会回答它。Alpay是对的:确保默认选中复选框的正确方法是这样的(下面是一个未选中复选框):
<input type="checkbox" name="vehicle" value="Car" checked> I have a car
<input type="checkbox" name="vehicle" value="Bike"> I have a bike
已在w3schools上找到答案。最初问题的作者在PHP代码方面遇到了问题,这与问题标题完全无关。
在HTML中,如果您希望默认选中复选框,请参阅以下内容;
<input type="checkbox" name="name1" value="uc"> This checkbox is unchecked <br>
<input type="checkbox" name="name2" value="c" checked> This checkbox is checked<br>
因此,您可以考虑更改
<?php if ( $checked_status ) echo 'checked="checked" '; ?>
至
<?php if ( $checked_status ) echo 'checked'; ?>
问题不在于生成的HTML标记;与问题中一样,echo 'checked="checked" '
运行良好,更简单的echo 'checked'
也运行良好。
问题出在条件$checked_status
上。就发布的代码而言,您正在测试一个未定义的变量。
我也遇到了同样的问题。我发现我是想把复选框放进一张表中,但忽略了和。
未检查:
if(!$stump){echo '<input type="checkbox" name="stump" value="stump" checked="checked"><b> Stump Job!</b>';}
已检查:
if(!$stump){echo '<td><input type="checkbox" name="stump" value="stump" checked="checked"><b> Stump Job!</b></td>';}
在常规PHP中,您可以使用它来"保存"提交后的检查状态。
<form name="checkbox" method="post" action="#" >
<input type="checkbox" name="checkbox1" value="Bike" <?php if ($_POST['checkbox1']=="Bike") echo "checked";?>>I have a bike
<input type="checkbox" name="checkbox2" value="Car" <?php if ($_POST['checkbox2']=="Car") echo "checked";?>>I have a car
<input type="submit" name="submit" value="Display this Data" />
如果你想在提交后将这些数据用于其他用途,只需添加:
<?php
if(isset($_POST['checkbox1']) OR isset($_POST['checkbox2']) )
{
echo "for 1 : ".$_POST['checkbox1']."for 2: ".$_POST['checkbox2'];
}
?>
如果你想清除表单(基本上清除所有的帖子数据),你可以添加:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="submit" name="Clear all form data" value= "Clear this form">
</form>