0
我是PHP新手,我一直在爲複選框工作幾天,但仍然無法解決它。我試圖通過在會話中使用0和1作爲狀態來檢查複選框。問題是它不會在提交後顯示檢查,但實際上會在會話中檢查。 在POST中,我使用window.location.href來刷新頁面,使複選框顯示爲選中狀態。如果我沒有使用window.location.href,就像我上面提到的那樣,複選框被選中,但是在第一次點擊按鈕後沒有顯示。當我再次點擊該按鈕時,複選框將顯示爲選中狀態,會話狀態也會被檢查,同樣也會進入其他複選框。如何使用會話數組檢查複選框
<form name="filter" method="POST" action="">
<div class="panel-body">
<div class="form-group">
<?php
$check_array = array();
$search = $_GET['search'];
$category = mysqli_query($conn, "SELECT * FROM categories");
$numrow = mysqli_num_rows($category);
$i = 0;
while($crow = mysqli_fetch_assoc($category))
{
array_push($check_array, [$crow['categories_id'], $crow['categories_name'],$_SESSION['cat'][$i][2]]);
if(empty($_SESSION['cat'][$i][2])){
?>
<script>
$(document).ready(function(){
$('#categories_id<?php echo $crow['categories_id']; ?>').attr('checked', false);});
</script>
<?php
}
elseif($_SESSION['cat'][$i][2] == 0){
?>
<script>
$(document).ready(function(){
$('#categories_id<?php echo $crow['categories_id']; ?>').attr('checked', false);});
</script>
<?php
} elseif($_SESSION['cat'][$i][2] == 1){
?>
<script>
$(document).ready(function(){
$('#categories_id<?php echo $crow['categories_id']; ?>').attr('checked', true);});
</script>
<?php
}
?>
<div class="checkbox">
<label><input type="checkbox" name="categories_id<?php echo $crow['categories_id']; ?>" id="categories_id<?php echo $crow['categories_id']; ?>"><?php echo $crow['categories_name']; ?>
<input type="hidden" name="catname<?php echo $crow['categories_id']; ?>" id="<?php echo $crow['categories_id']; ?>" value="<?php echo $crow['categories_id']; ?>">
</label>
</div>
<?php
$i++;
}
?>
</div>
</div><button type="submit" class="btn btn-default" name="Btn">Filter</button></form>
這是帖子的功能
if(isset($_POST['Btn'])){
for($j=0; $j<count($check_array); $j++){
$_SESSION['cat'][$j][0] = $check_array[$j][0];
$_SESSION['cat'][$j][1] = $check_array[$j][1];
}
for($k=0;$k<count($check_array);$k++){
$val = $_POST['catname'.$check_array[$k][0]];
if(isset($_POST['categories_id'.$check_array[$k][0]])){
$selected = 1;
}
else{
$selected = 0;
}
if($_SESSION['cat'][$k][0] == $val){
$_SESSION['cat'][$k][2] = $selected;
}
}
?>
<script>
window.location = window.location.href;</script>
<?php
}
下面是陣列
Array ([0] => 21 [1] => Accessories [2] => 1)
Array ([0] => 13 [1] => Outdoor sports [2] => 0)
Array ([0] => 2 [1] => Women [2] => 0)
Array ([0] => 10 [1] => Yard, garden & outdoor [2] => 0)
的輸出的第一個數字類別ID,然後按類別名稱,最後一個是當複選框被檢查,那麼它將成爲1其他0
請告訴我。
我認爲最後一行是錯誤的「<?php}」。在這裏你打開php標籤,但從不關閉。我不知道爲什麼最後一個「}」? (對不起,如果我的英語不好):) –
嗯,我相信你提到的錯誤只是我的不良編輯技巧。我相信沒有語法錯誤就像缺少一個關閉括號,因爲我已經計算了括號的數量是平衡的:) – GeographerOnCompSc