如何检查复选框是否返回值?错误:"注意:未定义的索引:"

时间:2016-04-21 13:49:25

标签: php html mysql forms checkbox

我正在完成我最后一年级的最后一个项目。 我目前正在为与舞蹈学校的mysql链接的网站工作。 我想检查复选框是否返回值。 它会在" if($ _ POST [' dansstijl'。$ i。''])&#34中提供"未定义的索引" -error ;而且我不知道我做错了什么。

对不起,如果有荷兰语的部分!

这是代码的重要部分:

$sql1="INSERT INTO tblinschrijvingen(llnID) VALUES('".$lln_id."')";
   if(!$result1=$mysqli-> query($sql1))
                       {trigger_error('Fout bij query: '.$mysqli->error);}
   else 

   {
       $sql2="SELECT inschrijvingsID FROM tblinschrijvingen ORDER BY inschrijvingsID DESC LIMIT 1";
       if(!$result2=$mysqli-> query($sql2))
                       {trigger_error('Fout bij query: '.$mysqli->error);}
       else 
       {
           for($i=1;$i<=11;$i++)
           {
               if($_POST['dansstijl'.$i.''])
               {
                   $row=$result2->fetch_assoc();
                   $inschrijvingsID=$row['inschrijvingsID'];

                   $sql3="SELECT DansID, vestiging, Dansstijl FROM tbldanslessen WHERE vestiging='".$vestiging."' AND Dansstijl='".$_POST['dansstijl'.$i.'']."'";

                   echo($sql3);
                   if(!$result3=$mysqli-> query($sql3))
                           {trigger_error('Fout bij query: '.$mysqli->error);}
                   else 
                   {
                       $row=$result3->fetch_assoc();
                       $dansID=$row['DansID'];

                        $sql4="INSERT INTO tblinschrijvingenperdansles(inschrijvingsID, dansID) VALUES ('".$inschrijvingsID."', '".$dansID."')";
                        if(!$result4=$mysqli-> query($sql4))
                               {trigger_error('Fout bij query: '.$mysqli->error);}
                       else 
                       { 
                       }
                    }
               }
        }
   }

以下是我的复选框:

<table border="0">
  <tbody>
    <tr>
      <td width="199"><label>
        <input type="checkbox" name="dansstijl1" value="Peuterballet" id="dansstijl1">
      Peuterballet</label></td>
      <td width="162"><label>
        <input type="checkbox" name="dansstijl2" value="Preballet" id="dansstijl2">
      Preballet</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name="dansstijl3" value="Preprimary" id="dansstijl3">
      Preprimary</label></td>
      <td><label>
        <input type="checkbox" name="dansstijl4" value="Primary" id="dansstijl4">
      Primary</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name="dansstijl5" value="Klassiek" id="dansstijl5">
      Klassiek</label></td>
      <td><label>
        <input type="checkbox" name="dansstijl6" value="Modern Jazz" id="dansstijl6">
      Modern Jazz</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name="dansstijl7" value="Hedendaags" id="dansstijl7">
      Hedendaags</label></td>
      <td><label>
        <input type="checkbox" name="dansstijl8" value="Musical" id="dansstijl8">
      Musical</label></td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name="dansstijl9" value="Pointes" id="dansstijl9">
      Pointes</label></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>
        <input type="checkbox" name="dansstijl10" value="Hiphop - Breakdance" id="dansstijl10">
      Hiphop - Breakdance</label></td>
      <td><label>
        <input type="checkbox" name="dansstijl11" value="Hiphow - Crew" id="dansstijl11">
      Hiphow - Crew</label></td>
    </tr>
  </tbody>
</table>

感谢正手!

3 个答案:

答案 0 :(得分:0)

更改

if($_POST['dansstijl'.$i.''])

if (isset($_POST['dansstijl'.$i.'']))

检查是否设置了dansstijl,而不是试图获取dansstijl的值(可能不存在,从而给你错误)。

答案 1 :(得分:0)

首先,根据我的拙见,您需要改进代码的可读性部分。如果你必须在几周内查看代码,你会后来感谢自己。

其次,您通过使用数字插入字符串来循环访问POST表单。你还需要调试自己的情况,例如,在if之后放置一个echo(),以便知道哪个索引是你无法访问的索引。

此外,代码组织应该对您更重要,并将逻辑单元划分为自己的函数,而不是if子句的嵌套树。

此外,在PHP中,您可以将字段作为<input name="hello[2]" value="y" />$_POST['hello'][1]发送,然后您可以在$_POST['hello'][2]和{{1}}中获取这些字段,请参阅http://php.net/manual/en/reserved.variables.post.php#87650

答案 2 :(得分:0)

 if(isset($_POST['dansstijl'.$i.''])) {

 // query ...