2016-07-10 3 views
0

Как я могу сохранить выбранные флажки, после отправки формы при ошибке? Теперь я получаю это сообщение об ошибке: Warning: in_array() ожидает, что параметр 2 будет массивом, строка указана вPhp keep checkbox проверяется после ошибки формы

Спасибо!

function runsql_array($sql) 
{ 
    global $kapcs; 
    $res = mysqli_query($kapcs , $sql) or die(mysqli_error($kapcs)); 
    if (mysqli_num_rows($res) == 0) 
    { 
     return array(); 
    } 
    else 
    { 
     $out = array(); 
     while ($a = mysqli_fetch_assoc($res)) 
     { 
      $out[] = $a; 
     } 
     return $out; 
    } 
} 

    <td> 
        <?php 
        $ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : '' ; 
        $values = runsql_array("SELECT termek_tipus_id, termek_tipus_nev FROM termek_tipusok WHERE termek_tipus_status = 1 
        ORDER BY termek_tipus_nev ASC"); 

        foreach($values as $val=>$szoveg) 
        { 

         $checked = in_array($val, $ertek) ? ' checked ' : '' ; 

         echo '<div style="margin:4px 0;"><label style="cursor:pointer;" for="tulajdonsag-'.$val.'">'; 
          echo '<input id="tulajdonsag-'.$val.'" type="checkbox" name="termek_tul_tipusok[]" '.$checked.' value="'.$val.'" />'; 
          echo $szoveg['termek_tipus_nev']; 
         echo '</label></div>'; 
        } 

        ?> 
        </td> 

ответ

0

линия

$ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : '' ; 

определяет $ertek. И в случае, когда post dosnt существует, он определяется как пустая строка. Вы должны использовать пустой массив.

$ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : array() ; 
Смежные вопросы