我的自动检查系统无法正常工作
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;,使系统无法正常工作......我不知道如何解决它,欢迎任何帮助!
答案 0 :(得分:2)
问题在于您在name
标记的input
属性中使用了空格。见this reference:
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
This has also been addressed in other SO questions
空格不允许,并且在使用POST
或GET
方法提交时不会正常工作。因此,您应该使用空格重命名任何值,或使用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中。