-2

我有三个复选框,用户应该检查一到两个选项。

当我检查 2 个选项时,会出现一条错误消息。

    $workshop1Day1 = $_POST["workshop1Day1"];
    $workshop2Day1 = $_POST["workshop2Day1"];
    $workshop3Day1 = $_POST["workshop3Day1"];


 $requete = "INSERT INTO Participant ( NameSurname,workshop1Day1,workshop2Day1,workshop3Day1)
                      VALUES ('$NameSurname', '$workshop1Day1', '$workshop2Day1', '$workshop3Day1')";
        $result = @mysql_query($requete);

错误:

Notice: Undefined index: workshop3Day1

然后我尝试了以下代码(例如:如果未选中复选框编号 3),出现相同的错误

  $workshop1Day1=' ';
  $workshop2Day1='';
  $workshop3Day1='';

  $workshop1Day1 = $_POST["workshop1Day1"];
  $workshop2Day1 = $_POST["workshop2Day1"];
  $workshop3Day1 = $_POST["workshop3Day1"];

if (isset($workshop1Day1)&& isset($workshop2Day1)&& !isset($workshop3Day1))
{

    $requete = "INSERT INTO Participant ( NameSurname,workshop1Day1,workshop2Day1,workshop3Day1)
                  VALUES ('$NameSurname', '$workshop1Day1', '$workshop2Day1', '$workshop3Day1')";
    $result = @mysql_query($requete);

我知道 isset 是解决方案,但如何解决?

4

1 回答 1

3

您收到警告是因为您没有isset在源变量上运行,而只是在您将其分配给的变量上运行。

此行 ( $workshop3Day1 = $_POST["workshop3Day1"];) 将引发警告,因为该数组索引不存在。相反,在该行上使用 isset,然后在 if 条件中使用该结果。像这样的东西:

$workshop1Day1 = isset($_POST["workshop1Day1"]) ? $_POST["workshop1Day1"] : 0;
$workshop2Day1 = isset($_POST["workshop2Day1"]) ? $_POST["workshop2Day1"] : 0;
$workshop3Day1 = isset($_POST["workshop3Day1"]) ? $_POST["workshop3Day1"] : 0;

然后isset从你的if条件中删除。

于 2013-05-22T15:00:20.240 回答