PHP自动检查复选框不起作用


PHP Auto-Check checkbox not working

我有一个自动检查系统,工作不正常

while($linha = mysql_fetch_array($tabela))
{
    $nome = $linha['TABLE_NAME'];
    ?>
        <input type="checkbox" name="<?php echo $nome ?>" id="<?php echo $nome ?>" value="<?php echo $nome ?>" <?php if(isset($_POST[$nome]))  echo "checked='checked'";?>/> <?php echo $nome ?><br />
    <?php
}

问题是$nome变量,它有空格,比如"A B"或"106 South",导致系统无法正常工作。。。我不知道该怎么解决,欢迎任何帮助!

问题在于您在input标记的name属性中使用了空格。参见此参考:

ID和NAME标记必须以字母([a-Za-z])开头,后面可以跟任意数量的字母、数字([0-9])、连字符("-")、下划线("_")、冒号(":")和句点(".")。

在其他SO问题中也提到了这一点

不允许使用空格,当您使用POSTGET方法提交空格时,空格将无法正常工作。因此,您应该用空格重命名任何值,或者使用str_replace函数用下划线或类似的东西替换空格。还要注意"必须以字母开头"的部分。。。这也意味着106 Sul的值无效,即使您将其更改为106Sul也是如此。

如果空间有问题,你不能用另一个字符来代替它吗,比如:

str_replace(' ','|',$nome);

然后在读取结果时,只需将|替换为空格,并将其保存到DB

您只能使用标签中的"checked"值检查输入:

<input type="checkbox" checked />

试着在php的html中写单词,而不是"checked='checked'"。