Php 默认选中复选框html

Php 默认选中复选框html,php,html,Php,Html,我试图在默认情况下选中一个复选框,但我尝试的一切似乎都不起作用。我不知道这是否与代码中的PHP有关 function show_subscription_checkbox ($id='0') { global $sg_subscribe; sg_subscribe_start(); if ( $sg_subscribe->checkbox_shown ) return $id; if ( !$email = $sg_subscribe->curren

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

插件作者声明,您过去可以默认选中复选框,但现在不能了。

问题不在生成的HTML标记中
echo'checked=“checked”
与问题中一样,工作正常,更简单的
echo'checked'
也可以


问题在于条件
$checked\u status
。就发布的代码而言,您正在测试一个未定义的变量。

在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>
此复选框未选中
选中此复选框
<>所以,你可以考虑改变< /P>
<?php if ( $checked_status ) echo 'checked="checked" '; ?>


既然这是谷歌上显示的“默认选中复选框”,我想我应该回答它。Alpay是正确的:确保默认选中复选框的正确方法如下(后面是未选中复选框的示例):

我有一辆车
我有一辆自行车

答案是在上面找到的。原始问题的作者在PHP代码方面遇到了问题,而PHP代码与问题标题完全无关。

我也遇到了同样的问题。我想我是想把复选框放在一张表中,但忽略了和

没有检查:

if(!$stump){echo '<input type="checkbox" name="stump" value="stump" checked="checked"><b> Stump Job!</b>';}
if(!$stump){echo'stump Job!';}
检查:

if(!$stump){echo '<td><input type="checkbox" name="stump" value="stump" checked="checked"><b> Stump Job!</b></td>';}
if(!$stump){echo'stump Job!';}

在普通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'];
   }
?>

如果要清除表单(基本上清除所有post数据),可以添加:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="submit" name="Clear all form data" value= "Clear this form">
</form>  

我想我应该发布比我最初发布的代码更多的代码。我已经用更多的代码更新了我的帖子。您现在添加了测试正在设置的cookie的代码。没有迹象表明它实际上可能被设置在哪里。这让我有点不知所措。据我所知,这是唯一与复选框关联的代码。有没有办法共享整个文件?除了复制和粘贴所有代码?我可能遗漏了什么。您确定您的
$checked\u status=(!empty($\u COOKIE['subscribe\u checkbox.'.COOKIEHASH])&&&'checked'=$\u COOKIE['subscribe\u checkbox..COOKIEHASH])?真:假行在解析html之前执行?是否符合w3c?不sure@Alpay我直接从插件文件复制了代码。作者说你过去可以勾选默认框,但现在这已经不是一个选项了?。但我想一定有办法。:)
<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>