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

时间:2014-10-21 18:35:22

标签: php checkbox space

我的自动检查系统无法正常工作

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变量,它有空格,比如&#39; A B&#39;或者&#39; 106南方&#39;,使系统无法正常工作......我不知道如何解决它,欢迎任何帮助!

3 个答案:

答案 0 :(得分:2)

问题在于您在name标记的input属性中使用了空格。见this reference

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。

This has also been addressed in other SO questions

空格不允许,并且在使用POSTGET方法提交时不会正常工作。因此,您应该使用空格重命名任何值,或使用str_replace函数替换带有下划线或类似内容的空格。另请注意“必须以字母开头”的部分...这也意味着106 Sul的值无效,即使您将其更改为106Sul。< / p>

答案 1 :(得分:0)

如果空间有问题,你不能用另一个角色替换它,如下所示:

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

然后在阅读结果时,您只需更换|用空格并将其保存到DB

答案 2 :(得分:-1)

您只能使用&#34;选中&#34;来检查输入。标签中的值:

<input type="checkbox" checked />

尝试编写单词,而不是&#34;已检查=&#39;已检查&#39;&#34;在您的PHP的HTML中。