带有变量的 PHP 复选框


php checkebox with variable

这是我有复选框的代码

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,如果它是一个空数组,即使它是nullempty()都会返回true

正直

最后,在前面的代码中生成复选框时,请确保$j具有与$i相同的值(作为复选框name属性应用)。否则,您的条件将不会检查正确的值(或者更确切地说,在超全局$_POST键)。