1

我在页面上有一个表格。它有太多东西,比如复选框、文本字段和下拉菜单。但是当我没有选择其中一个复选框时,我捕获表单的 PHP 页面会显示一个错误。

例子:

HTML 代码:

Checkbox 1<input type="checkbox" name="check1" value="on" />
Checkbox 2<input type="checkbox" name="check2" value="on" />

PHP代码:

$check1 = $_GET['check1'];
$check2 = $_GET['check2'];

如果这两个项目都被选中并在 URL 中发送,则它工作正常:

localhost/project/checkbox.php?check1=on&check2=on

但是当我取消选择其中 1 个时,假设 check2,那么 URL 是这样的:

localhost/project/checkbox.php?check1=on

它向我显示了一个错误 - $check2 是一个未定义的索引。

但如果未选中复选框,我不希望它显示错误。我还尝试了一个if语句来检查我是否在 URL 中得到它,但它没有用。

有没有办法首先检查是否在 URL 中传递数据?因为我没有得到错误。实际上,错误不是主要问题,因为我得到了正确的结果,而且我知道我可以关闭 php.ini 中的错误报告,但这不是我想要做的。我希望它首先检查数据是否进入?

谢谢...

4

2 回答 2

2

if (isset($_GET['check2']) && !empty($_GET['check2'])将检查 check2 GET 参数是否存在且不为空。

于 2011-03-21T18:23:56.337 回答
0

复选框值仅在选中时才被注册。所以你可以简单地做一个这样的检查:

$check1 = isset($_GET['check1']);
$check2 = isset($_GET['check2']);

$check1现在$check2将具有布尔值:

echo "Checkbox 1 one is " . ($check1 ? "checked" : "not checked") . PHP_EOL;
echo "Checkbox 2 one is " . ($check2 ? "checked" : "not checked") . PHP_EOL;
于 2011-03-21T18:27:36.833 回答