无法禁用复选框

时间:2016-08-03 05:28:17

标签: php

我的问题是,只有当所有复选框状态为0时才会禁用我的复选框。但是在这里,我只希望禁用所选复选框,但是当复选框的状态未全部设置为0时,它不会被禁用 这是我的代码:

<?php
    $username = $_SESSION['username'];
    $query = "SELECT * FROM box WHERE status = 1";
    $result = @mysqli_query($con, $query);
    $num_rows = @mysqli_num_rows($result);
    $disable = '';
    if (!$num_rows) {
        $disable = 'disabled="disabled"';
    }    
?>

<form method = "post" action = "">    
    <input type='checkbox' name="boxs[]" id="1.1" value ="1.1" <?php echo $disable ?>/>
    <label for="1.1" class="background1"></label> <br/>
    <input type='checkbox' name="boxs[]" id="1.2" value ="1.2"<?php echo $disable ?>/>
    <label for="1.2" class="background2"></label> 
    <br/>
    <input type='checkbox' name="boxs[]" id="1.3" value ="1.3"<?php echo $disable ?>/>
    <label for="1.3" class="background2"></label> 
    <input type="submit" name="Next" id="Next" value="next" />
</form>
<?php    
    if(isset($_POST['Next'])) {   
        foreach($_POST['boxs'] as $f) {
            $sql = "UPDATE box SET status = '0' WHERE boxid = '$f'";
            mysqli_query($con,$sql) or die(mysqli_error($con));

            $result = "INSERT INTO booked(username, boxid) VALUES('$username', '$f')";
            mysqli_query($con,$result) or die(mysqli_error($con));
        }       
    }
?>

那么,我的代码出了什么问题?

2 个答案:

答案 0 :(得分:1)

<?php $username = $_SESSION['username'];?>
<form method = "post" action = "">
<?php
  $username = $_SESSION['username'];
  $query = "SELECT * FROM box WHERE boxid=1.1 AND status = 1";
  $result = @mysqli_query($con, $query);
  $num_rows = @mysqli_num_rows($result);
  $disable = '';
  if (!$num_rows){
    $disable = 'disabled="disabled"';
  }
?>

<input type='checkbox' name="boxs[]" id="1.1" value ="1.1" <?php echo $disable ?>/>
<label for="1.1" class="background1"></label> <br/>
<?php
  $query = "SELECT * FROM box WHERE boxid=1.2 AND status = 1";
  $result = @mysqli_query($con, $query);
  $num_rows = @mysqli_num_rows($result);
  $disable = '';
  if (!$num_rows){
   $disable = 'disabled="disabled"';
  }
?>

<input type='checkbox' name="boxs[]" id="1.2" value ="1.2"<?php echo $disable ?>/>
<label for="1.2" class="background2"></label> 
<br/>
<?php
  $query = "SELECT * FROM box WHERE boxid=1.3 AND status = 1";
  $result = @mysqli_query($con, $query);
  $num_rows = @mysqli_num_rows($result);
  $disable = '';
  if (!$num_rows){
    $disable = 'disabled="disabled"';
  }
?>

<input type='checkbox' name="boxs[]" id="1.3" value ="1.3"<?php echo $disable ?>/>
<label for="1.3" class="background2"></label> 
<input type="submit" name="Next" id="Next" value="next" />
</form>
<?php

if(isset($_POST['Next']))
{   
foreach($_POST['boxs'] as $f){
$sql = "UPDATE box SET status = '0' WHERE boxid = '$f'";
mysqli_query($con,$sql) or die(mysqli_error($con));

$result = "INSERT INTO booked(username, boxid) VALUES('$username', '$f')";
mysqli_query($con,$result) or die(mysqli_error($con));
}

}
?>

答案 1 :(得分:0)

我不知道你的确切要求但是;您的解决方案可能是

<?php $username = $_SESSION['username']; ?>
<form method = "post" action = "">
<?php
$username = $_SESSION['username'];
$query = "SELECT * FROM box";
$result = @mysqli_query($con, $query);
$i=1;
while ($raw = $result->fetch_assoc()) {

    if ($raw['status'] == 1) {
        $disable = 'disabled="disabled"';
    } else {
        $disable = '';
    }
    echo "<input type='checkbox' name='boxs[]' id='" . $raw['boxid'] . "' value ='" . $raw['boxid'] . "' $disable/>";
    echo " <label for='" . $raw['boxid'] . "'  class='background$i'></label> <br/>";
 $i++;
}
?>
</form>