2016-04-21 95 views
1

我正在研究最後一個年級的最終項目。 我目前正在與一個跳舞學校的mysql連接的網站上工作。 我想檢查一個複選框是否返回一個值。 它在「if($ _ POST ['dansstijl'。$ i。''))」中給出了一個「未定義的索引」 - 錯誤,「我不知道我在做什麼錯誤。如何檢查複選框是否返回值?錯誤:「注意:未定義索引:」

對不起,如果有部分在荷蘭!

下面的代碼的很大一部分:

$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> 

謝謝您對正手!

+1

http://stackoverflow.com/help/mcve – ssice

回答

0

變化

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

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

此檢查dansstijl是否被設置,而不是試圖讓dansstijl的值(這可能不存在,從而給你錯誤)。

+0

謝謝!這很愚蠢的我,我盯着我的屏幕2小時想知道我做錯了什麼:p。 –

+0

Geen問題;),我們都有這些時刻,所以不用擔心;)。 – Koen

0

首先,我認爲你需要改進代碼的可讀性部分。如果你在幾個星期內必須查看代碼,那麼以後你會感謝你。

其次,您通過插入帶有數字的字符串來訪問循環中的POST表單。您還需要調試自己的情況,例如,在if後面加一個echo(),以便知道哪個索引是您無法訪問的索引。

此外,代碼組織應該對您來說更重要,並且將邏輯單元劃分到自己的函數中,而不是if-clause的嵌套樹。

此外,在PHP中您可以發送領域<input name="hello[1]" value="x" /><input name="hello[2]" value="y" />,你可以讓他們在$_POST['hello'][1]$_POST['hello'][2],看到http://php.net/manual/en/reserved.variables.post.php#87650

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

// query ...