我正在尝试默认选中一个复选框,但我尝试的所有内容似乎都不起作用。我不知道它是否与代码中的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> ';
插件作者声明您以前可以默认选中复选框但不能再查看。
答案 0 :(得分:29)
由于这是在谷歌出现“默认选中复选框”,我想我会回答它。 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代码问题,这与问题标题完全无关。
答案 1 :(得分:4)
在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'; ?>
答案 2 :(得分:0)
问题不在于生成的HTML标记; echo 'checked="checked" '
,如同问题一样,运作良好,更简单echo 'checked'
。
问题在于条件$checked_status
。您正在测试未定义的变量,只要考虑发布的代码。
答案 3 :(得分:0)
我遇到了同样的问题。我发现我试图把复选框放到一张桌子里,但是遗漏了和。
未检查:
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>';}
答案 4 :(得分:0)
在常规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>