INSERT таблица контрольного списка обслуживания PHP HTML MYSQL - PullRequest
1 голос
/ 22 марта 2019

Мне нужно создать таблицу для регистрации технического обслуживания устройств безопасности машин.

У меня есть таблица моего БД, которая содержит список всех машин, связанных с их собственными устройствами безопасности.

каждое защитное устройство может быть «ОК», «НЕ ОК», «ЧАСТИЧНО ОК» или «НА»

Я создал веб-страницу с HTML / PHP, на которой специалист по обслуживанию выбирает машину, на которой он выполняет обслуживание, и появится список устройств безопасности, которыми он должен управлять, и зарегистрирует состояние устройства (хорошо, не в порядке ...).

<html>
    <? include 'home.php' ?>    
        <body>
            <div>
                <form action="insert_controllo.php" method="POST">
                <table>
                    <th>Macchina</th>
                    <th>Dispositivo</th>
                    <th>Descrizione</th>
                    <th>OK</th> 
                    <th>NOK</th>    
                    <th>PARZ</th>   
                    <th>NA</th> 
                    <th>Note</th>   
<?                      while($row = mysql_fetch_array($risultato)){
                            echo "<tr><td>  <input class='hide' type= 'text' name='macc' value ='".$row['macc']."' readonly> 
                                  </td><td> <input class='hide' type= 'text' name='iddispssic' value ='".$row['iddispsic']."' readonly> 
                                  </td><td> <input class='hide' type= 'text' name='descgen' value ='".$row['descgen']."' readonly>
                                  </td><td> <input type= 'checkbox' name='chk1[]' value ='OK'>  
                                  </td><td> <input type= 'checkbox' name='chk1[]' value ='NOK'>
                                  </td><td> <input type= 'checkbox' name='chk1[]' value ='PARZ'>    
                                  </td><td> <input type= 'checkbox' name='chk1[]' value ='NA'> 
                                  </td><td> <input type='text' name='note' placeholder = 'Note'> 
                                 </td></tr>";   
                        }?>
                </table>
                <button class="bottone" name='submit' type='submit'>Concludi</button>
                </form>
            </div>
        </body>
</html>

моя проблема в том, что в POST VAR DUMP я получаю только первую строку таблицы

        <!-- POST: Array
(
    [macc] => 09
    [iddispssic] => 2
    [descgen] => Ripari Fissi
    [chk1] => Array
        (
            [0] => NOK
        )

    [note] => 
    [submit] => 
)
 -->

и я не знаю, как ВСТАВИТЬ в БД, флажок установлен

Может кто-нибудь мне помочь?

Я хотел бы вставить в БД что-то вроде этого

Machine-SafetyDevice-State (OK, NotOK, ...) - описание (в каждой строке есть текст ввода для добавления примечания) -DateTime

1 Ответ

1 голос
/ 22 марта 2019

Вы должны изменить имя входов, чтобы создать массив элементов (вы можете изменить имя «элементов» для другого).

$count = 0;
while($row = mysql_fetch_array($risultato)){
  echo '<tr><td>  <input class="hide" type= "text" name="elements['.$count.'][macc]" value ="'.$row["macc"].'" readonly> 
    </td><td> <input class="hide" type= "text" name="elements['.$count.'][iddispssic]" value ="'.$row["iddispsic"].'" readonly> 
    </td><td> <input class="hide" type= "text" name="elements['.$count.'][descgen]" value ="'.$row["descgen"].'" readonly>
    </td><td> <input type= "checkbox" name="elements['.$count.'][chk1][]" value ="OK">  
    </td><td> <input type= "checkbox" name="elements['.$count.'][chk1][]" value ="NOK">
    </td><td> <input type= "checkbox" name="elements['.$count.'][chk1][]" value ="PARZ">    
    </td><td> <input type= "checkbox" name="elements['.$count.'][chk1][]" value ="NA"> 
    </td><td> <input type="text" name="elements['.$count.'][note]" placeholder = "Note"> 
    </td></tr>';   

  $count ++;
}

Если одновременно разрешено только одно состояние, необходимо установить флажки для установки переключателя, например:

$count = 0;
while($row = mysql_fetch_array($risultato)){
  echo '<tr><td>  <input class="hide" type= "text" name="element['.$count.'][macc]" value ="'.$row["macc"].'" readonly> 
    </td><td> <input class="hide" type= "text" name="element['.$count.'][iddispssic]" value ="'.$row["iddispsic"].'" readonly> 
    </td><td> <input class="hide" type= "text" name="element['.$count.'][descgen]" value ="'.$row["descgen"].'" readonly>
    </td><td> <input type= "radio" name="element['.$count.'][chk1]" value ="OK">  
    </td><td> <input type= "radio" name="element['.$count.'][chk1]" value ="NOK">
    </td><td> <input type= "radio" name="element['.$count.'][chk1]" value ="PARZ">    
    </td><td> <input type= "radio" name="element['.$count.'][chk1]" value ="NA" checked> 
    </td><td> <input type="text" name="element['.$count.'][note]" placeholder = "Note"> 
    </td></tr>';   

  $count ++;
}

В "insert_controllo.php" вы можете прочитать данные следующим образом:

  if(isset($_POST['elements'])){
    for($i=0; $i<count($_POST['elements']); $i++){
      // the query. For example 'UPDATE TABLENAME SET chk1 = "'.$_POST['elements']['chk1'].'" WHERE macc = "'.$_POST['elements']['macc'].'" ';
    }
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...