2012-04-14 92 views
0

我已經計算出足夠的餘量來循環訪問我的表並返回將與產品匹配的複選框列表。我現在的問題是,我無法弄清楚在選擇它們之後通過它們進行循環的正確方法,並將它們返回爲給定產品的選中/取消選中狀態。認爲有一些MySQL涉及,那部分不是問題,我知道如何插入數據庫或更新...當從下拉列表中選擇產品時,我需要能夠填充複選框。在PHP/MySQL數據庫中使用複選框

這裏是我使用的最初顯示所有類別可供選擇的代碼...

<ul class="categories"> 
    <?php 
    $query = "SELECT * FROM products"; 
    $result = mysql_query($query) or die(mysql_error()); 
    while ($row = mysql_fetch_assoc($result)) { 
    $category = $row['category']; 
    $catId = $row['id']; 
    echo "<li><input class='catCheck' type='checkbox' name='p_cat[]' value='$catId' /> $category</li>"; 
    } 
    ?> 
</ul> 
+0

它是什麼你想要做什麼?您的描述中不完全清楚。 – 2012-04-14 08:19:50

+0

是否試圖根據從查詢返回的結果來選中/取消選中複選框? – 2012-04-14 08:22:22

+0

你在'產品'表中有一個表示'checked/unchecked'狀態的字段嗎? – 2012-04-14 08:23:54

回答

0
  • 你應該給每個複選框自己的名字。例如,p_cat1,p_cat2,...
  • 然後,您必須記住您給複選框的名稱。例如,如果名稱是p_cat1,p_cat2,...,則必須知道複選框的數量。因此,您應該將此計數置於隱藏字段中,或者再次從數據庫中檢索它。
  • 如果你想設置複選框,則必須使用的選中狀態「選中」 HTML屬性,而不是「值」:

echo "<li><input class='catCheck' type='checkbox' name='p_cat[]' ".($is_checked? " checked " : "")."/> $category</li>"; 
  • 當請求來自客戶端,您應該手動遍歷所有$ _ POST [ 「p_cat $ I」]變量,並得到使用狀態類似isset($ _ POST [ 「p_cat $ I」])。
0
在html頁面

做這樣的

echo "<li><input class='catCheck' type='checkbox' name='p_cat['.$row['id'].']' value='$catId' /> $category</li>"; 

,並在後端做這樣

$delete = $_POST['p_cat']; 

foreach ($delete as $id => $val) { 
    if($val=='checked'){ 
     $query="DELETE FROM TABLE WHERE id = '".$id."'"; 
     $result= mysqli_query($connection, $query) or die("Invalid query"); 
    } 
}