8

我试图默认选中一个复选框,但我尝试过的一切似乎都不起作用。我不知道它是否与代码中的 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> ';

插件作者指出,您过去可以默认选中复选框,但现在不行了。

4

5 回答 5

30

由于这在谷歌中显示为“默认选中复选框”,我想我会回答它。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 代码时遇到了问题,这与问题标题完全无关。

于 2013-06-30T03:08:47.293 回答
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'; ?>
于 2013-02-07T07:10:01.393 回答
0

问题不在于生成的 HTML 标记;echo 'checked="checked" ',就像问题一样,效果很好,更简单的echo 'checked'.

问题在于条件$checked_status。就发布的代码而言,您正在测试未定义的变量。

于 2013-02-07T07:06:22.787 回答
0

我有同样的问题。我发现我试图将复选框放入表格中,但忽略了 and。

没有检查:

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>';}
于 2015-01-03T16:50:44.773 回答
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>  
于 2015-07-01T17:26:12.577 回答