0

我正在从 $_GET 数组中检索一些行,其中一些是复选框值。由于它们只会在 $_GET 数组中显示“on”状态,因此我设计了以下解决方案来为我将发送给客户端的字符串添加“off”。这是它的样子:

if(!($_GET['active'][$row])){  //row is incremented in a loop
    $oactive = "off";
}else{
    $oactive = "FBINSERTa".":". "\"" . $_GET['active'][$row] ."\"";
}

相对简单,这很有效,如果 ['active'][$row] 没有任何内容,则推迟 $oactive。但是,如果 $_GET['active'][$row] 的值未定义,PHP 会回显一个通知:

注意:未定义的偏移量:第 x 行 ...\page.php 中的 6

我可以用 error_reporting() 抑制它,但我想找到更好的方法。有任何想法吗?

4

2 回答 2

0

在尝试使用它之前检查它是否已设置,使用isset

if(isset($_GET['active'][$row]) && $_GET['active'][$row]==false){
于 2013-08-06T14:26:07.220 回答
0

你应该使用isset

if(isset($_GET['active'][$row])){  //row is incremented in a loop
    $oactive = "off";
}else{
    $oactive = "FBINSERTa".":". "\"" . $_GET['active'][$row] ."\"";
}

另一种选择是在每个复选框之前的标记中包含一个inputwith 类型hidden和一个默认值(我猜是“关闭”),这样,如果在选中时复选框的值将优先考虑表单被提交,否则隐藏输入的默认值将被提交。

例子:

<input type="hidden" name="myCheckbox" value="off" />
<label>
  <input type="checkbox" name="myCheckbox" value="on" />
  Check me!
</label>
于 2013-08-06T14:26:38.223 回答