0

先介绍一下我的代码:

<?php include ('header.php'); ?>
<h3>Extra menu items , van eigen pagina's</h3>
<!-- zet menu onderdelen aan of uit -->
<?php
    if ($_POST['submit'] == 'Verzenden') {
        $checkbox_vals = $_POST['np_menu_active_post']; // This will pass the selected checkbox values as an array

        //if(count($checkbox_vals) > 0) {
        // Loop it and update the values in DB
        foreach( $checkbox_vals as $key ){
            $updatequery = "UPDATE custompage set np_menu_active = '$key'";
            mysql_query($updatequery) or die("Couldn't get file list");
        }
    //}
?>
<meta HTTP-EQUIV="Refresh" CONTENT="0"; URL="<?php echo $_SERVER['PHP_SELF'];?>">
<?php
    }
?>

<?php
    $dbQuery_custom_toggle = "SELECT * ";

    $dbQuery_custom_toggle .= "FROM custompage";
    $result_custom_toggle = mysql_query($dbQuery_custom_toggle) or die("Couldn't get file list");
    while($row = mysql_fetch_array($result_custom_toggle)) {

        // $nptitel = $row['np_titel'];
        // $nptekst = $row['np_tekst'];

?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <input type="hidden" name="np_menu_active_post[]" value="0" />
<?php echo $row['np_menu_titel'];?>&nbsp;<input type="checkbox" name="np_menu_active_post[]" value="1" <?php if($row['np_menu_active'] == "1"){echo 'checked="checked"';}?> />  <br />




<?php
    }
?>
    <input type="Submit" name="submit" value="Verzenden" class="btn-primary">
</form>
<!-- einde menu toggles -->
<br />
<br />

所以我试图让这个表单根据复选框将 1 值或 0 值写入 mysql db。

它部分工作,当我选择最后一个复选框时,它会检查所有内容,并将其写入数据库。

4

1 回答 1

0

通过foreach循环,您可以使用每个复选框在同一字段中更新您的数据库,因此最后一个复选框是唯一剩下的内容。

根据所需的结果,您需要np_menu_active为每个复选框设置不同的列(so),或者需要添加一个WHERE条件(如 Rick 所说)以使行不同。

例如,如果您想为多个用户保存复选框设置,您将为column每个复选框创建一个,并row为每个用户创建一个。

于 2013-03-20T14:44:51.253 回答