2016-04-21 2 views
1

Я работаю над своим окончательным проектом в своем окончательном классе. В настоящее время я работаю над сайтом, связанным с mysql для школы танцев. Я хочу проверить, возвращает ли флажок значение или нет. Он дает «неопределенный индекс» -error в «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 probleem;), у всех нас есть такие моменты, поэтому не беспокойтесь об этом;). – Koen

0

Прежде всего, по моему скромному мнению, вам необходимо улучшить часть читаемости вашего кода. Вы поблагодарете себя позже, если вам придется взглянуть на код через пару недель.

Во-вторых, вы получаете формы POST в цикле путем интерполяции строк с номерами. Вам также нужно отлаживать ситуацию, например, помещая echo() сразу после if, чтобы узнать, к какому индексу относится тот, к которому вы не можете получить доступ.

Кроме того, организация кода должна быть для вас гораздо более важной и разделять логические единицы в их собственных функциях, а не как вложенное дерево if-clauses.

Кроме того, в 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.