2016-08-03 118 views
1

我的問題在於,我的複選框僅在所有複選框狀態爲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)); 
     }  
    } 
?> 

那麼,我的代碼有什麼問題?

+0

我檢查了您的代碼。但找不到任何問題。 –

+0

那麼,你有什麼想法禁用複選框? – June

+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)); 
} 

} 
?> 
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> 
+0

我的複選框有標籤,所以每個都有不同的類 – June

+0

請參閱修訂後的答案。 – Chintan7027

+0

我想安排我的複選框在3列。我應該怎麼做?該列需要看起來像tis:1.1 2.1 3.1 – June