2016-07-10 13 views
0

Wie kann ich die ausgewählten Kontrollkästchen aktiviert, nachdem das Formular bei Fehler einreichen? Jetzt bekomme ich diese Fehlermeldung: Warnung: in_array() erwartet, dass Parameter 2 Array ist, String inPHP behalten Checkboxen nach Formularfehler

Vielen Dank!

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> 

Antwort

0

die Linie

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

$ertek definiert. Und in dem Fall, dass der Post-Dosnt existiert, ist er als eine leere Zeichenfolge definiert. Sie sollten ein leeres Array verwenden.

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