这是我有复选框的代码
echo '<form id="form1" name="form1" method="post" action="">
<p>
<label>
<input type="checkbox" name="'.$i.'"value="$r1" id="cb'.$i.'" />
i' . $r1 . '
</label><br /> ';
$i=$i+1;
echo '<label>
<input type="checkbox" name="'.$i.'"value="$r2" id="cb'.$i.'" />
' . $r2 .
'</label><br />';
$i=$i+1;
在这里添加,如果检查或否,我尝试 khnow
if( !empty($_POST[$j]) ) //// here my prob
{
$results=$_POST[$j];
if($results=$row[0]){
$s=$s+1;$t=$t+1;
}else{
$t=$t+1;
}
}
我在行中遇到了问题!empty($_POST[$j])
我一直得到假,但没有错误。我不知道这是否可能。但这是做到这一点的唯一方法。因为我的支票是根据我的数据库信息创建的。
我需要帮助,请:)为我的英语服务。
HTML 标记
首先,在属性之间添加所需的空格,并应用相同的策略使用单引号在输出中包含变量:
name="'.$i.'"value="$r1"
应该成为
name="'.$i.'" value="'.$r1.'"
这样做是为了确保 HTML 中的标记正确。通过这种方式,您可以确保所有适当的浏览器在解释您的HTML代码时都没有问题。
输入:复选框及其工作原理
接下来,请了解input
中的value
属性的实际作用。
例:
- 如果
value="1"
并选中该复选框,则请求中发送的结果将为 1 - 如果
value="1"
且未选中该复选框,则不会在您的请求中发送任何结果
这意味着您的value
属性不必设置为 $r1
。例如,如果您只是将其设置为 1
,那就没关系了。
如果将value
设置为 1
,这意味着您也可以执行以下操作:
if($_POST[$j]=='1')
虽然最好不要检查value
而只是检查是否设置了$_POST
中的键。
为什么?
因为这样,PHP脚本中评估来自表单的请求的部分就不必知道复选框的实际值是什么。如果选中一个复选框,您将始终在$_POST
中找到其name
属性key
(或$_GET
,如果您使用的是)。
注意:如果您未设置复选框的值,则绝大多数浏览器都会发送on
作为值(如果选中该复选框)。
空() 或 ISSET()
接下来,了解empty()
和isset()
之间的区别。
点击此链接以了解有关这些功能的工作原理及其差异的更多信息
将empty()
呼叫更改为isset()
:
if( !empty($_POST[$j]) )
成为
if( isset($_POST[$j]) )
我发现后者更清楚,因为它遵循非反向逻辑。但最后,如果你愿意,你可以选择使用!empty()
,但请记住,如果选中的值是空字符串,如果它是一个布尔false
,如果它是一个空数组,即使它是null
,empty()
都会返回true
。
正直
最后,在前面的代码中生成复选框时,请确保$j
具有与$i
相同的值(作为复选框name
属性应用)。否则,您的条件将不会检查正确的值(或者更确切地说,在超全局$_POST
键)。