2016-07-10 7 views
0

フォームのエラーが発生した後、選択したチェックボックスをチェックしたままにするにはどうすればよいですか?今、私はこのエラーメッセージが表示されます:警告:in_array()は、配列2に配列2、配列2を期待しますフォームエラー後にPhp Keepチェックボックスをチェック

ありがとう!

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を定義します。そしてポストdosntが空の文字列として定義されている場合。空の配列を使用する必要があります。

$ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : array() ; 
関連する問題