2015-06-02 3 views
4

Я пытаюсь найти более разумный способ проверить мои входы с PHP. Если массив находит пустое поле, он должен добавить новый элемент в массив и отобразить сообщение об ошибке.Validate with arrays

До сих пор мне не удалось.

Код позади

$felter = array(); 

if(isset($_POST['submit'])) { 

     $produktnavn = $_POST['produktnavn']; 
     $kategori = $_POST['kategori']; 

     if(!empty($felter)) { 

      foreach ($felter as $felt) { 
       if ($felter == '') { 
        $fejl = true; 
       } 
      }    

     } 

     else { 

      $sql = "UPDATE produkt SET produkt_navn = '$produktnavn', fk_kategori_id = '$kategori' WHERE produkt_id=$id"; 
      mysqli_query($db, $sql); 

      echo "Produktet blev opdateret"; 

     } 

Форма ввода

<input type="text" class="form-control" name="produktnavn" value="<?php echo $produktnavn; ?>"> 
+0

Итак, ваш код работает или нет? – Epodax

+0

это не работает – nireck

+0

Какие ошибки вы получаете? Пожалуйста, включите их в вопрос и ** нЕ ** в комментариях – Epodax

ответ

1

код начинается с $felter = array();, который инициализирует пустой массив.

Затем, не меняя сам массив, вы проверяете для непустоты $felter

if(!empty($felter)) { 
      foreach ($felter as $felt) { 
       if ($felter == '') { 
        $fejl = true; 
       } 
      }    
     } 

Вы пытаетесь перебрать массив, который не получил какие-либо элементы толкнули в нее. И логическая инструкция if(!empty ($felter)) также не будет работать так, как ожидалось.

В качестве теста перед проверкой на наличие пустого, поместите что-то в массив с $felter[] = 'Test word';, а затем под ним ... (если вы ищете непустой массив, логическая проверка может быть if(count($felter)) { до итерация массива с foreach ($felter as $felt) { if ($felt == '')

$felter = array(); 
$felter[] = 'Test word'; 

if(isset($_POST['submit'])) { 

    $produktnavn = $_POST['produktnavn']; 
    $kategori = $_POST['kategori']; 

    if(count($felter)) { 
      foreach ($felter as $felt) { 
       if ($felt == '') { 
        $fejl = true; 
       } 
      }    
    }