取消选中后复选框不保存POST PHP

时间:2017-06-10 22:31:10

标签: php html mysql

我知道Mysqli已被解密,但服务器不允许我将Mysqli放入下划线,但目前这不是我的问题,我的问题是,如果我的复选框没有被检查,那么它不是从那时起更新为0,其中state为else。

<?php 
@mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
@mysql_select_db("xxx") or die(mysql_error());
@mysql_query("SET NAMES utf8");        error_reporting(E_ALL);
ini_set('display_errors', 1);





$chk1 = $_POST['chk1'];

foreach($chk1 as $i=>$s){
    if($s == TRUE)
    {
        echo $s, '<br/>';
        $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '1' WHERE cars_id='".$s."'");
    } else {    
        echo $s, '<br/>';
        $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '0' WHERE cars_id='".$s."'");
    }
    }

&GT;

*添加

<form action="./pages/checkbox.php" method="post">
<section class="content" class="table details">
    <table class="dashboard">
        <tr class="top">
            <td width="40">#</td>
            <td width="40"Show</td>
            <td width="40">Photo</td>
            <td width="80%"Name</td>
        </tr>
    <tbody id="the-list">
<?
$result= mysql_query("SELECT * FROM cars");
$counter = 1;
?>
<?php
 while($row = mysql_fetch_array($result)){
        echo '<tr>
            <td>' . $counter++ . '</td>
            <td><input value="'.$row['cars_id'].'" id="chk1" name="chk1[]" type="checkbox"';
            if ($row['show'] == true){  
                echo 'checked></td>'; 
                }else 
                { 
                echo 'unchecked></td>'; 
            }
        echo '<td><img src="../xml/images/'.$row['cars_id'].'-1.JPG"  width="120px"></td>';     
        echo "<td><h3> ", $row['brand']," " . $row['model'], " " . $row['type'], " &euro; " . $row[cars_id'], " </h3></td>";
        echo '</tr>';
 }
?> <input type="submit" name="Submit" value="Safe">
    </form> 

在&#34; ducpliate&#34;我没有找到如何将其置于while循环中,请描述这是同一个问题。

2 个答案:

答案 0 :(得分:1)

如果取消选中复选框,则不会发布。所以ID不在你的数组中。

检查您的后期数据,您会看到该复选框丢失。

获取未选中复选框的最佳方法是覆盖它们。

&#13;
&#13;
<form method="post">
  <input type="hidden" name="checkbox" value="0">
  <input type="checkbox" name="checkbox" value="1">
  <button type="submit">Check result</button>
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

复选框仅在检查时发布数据。 检查是否发布了

    <?php
    if(isset($_POST["chk1"])){
    // Run your sql code in here to avoid unwanted output
// Set your check variable
$chk1=$_POST["chk1"];
// Then your loop
foreach($chk1 as $i=>$s){
    if($s == TRUE)
    {
        echo $s, '<br/>';
        $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '1' WHERE cars_id='".$s."'");
    } else {    
        echo $s, '<br/>';
        $sql = mysql_query("UPDATE `xxx`.`cars` SET `show` = '0' WHERE cars_id='".$s."'");
    }
    }
    }
    ?>