2014-03-02 97 views
0

我正在製作一個表單,其中一個輸入是來自數據庫的多個複選框。如果表格填寫不正確,應將用戶退回到表格,但用戶返回後仍應檢查所選複選框。記住來自數據庫的選定複選框

包含該表單的頁面使用if,如果用戶犯了錯誤,他/她會收到一個包含會話的表單,以便填充的內容仍然存在。另一種形式沒有會話。

這是我用讀出從數據庫中的複選框選項代碼:

$STH = $DBH -> prepare("SELECT * FROM tbloptions"); 

    $STH -> execute(); 

    $STH -> setFetchMode(PDO::FETCH_OBJ); 

    while($row = $STH -> fetch()) 
    { 
     $optionID = $row -> optionID; 
     $option = $row -> option; 


     ?> 
     <input type="checkbox" name="<?php echo $option ?>" value="<?php echo $optionid ?>"> <?php echo $option ?><br> 
    <?php 
    } 

    ?> 

我應該爲形式使用的代碼與會議,我應該用什麼代碼來創建會話

感謝

+1

您必須設置HTML「選中」屬性:HTTP://www.w3schools的.com /標籤/ att_input_checked.asp。 – crunch

回答

0

添加方括號的複選框名稱創建選定值的組中的一個陣列

<input type="checkbox" name="chk_group[]" value="<?php echo $optionid ?>" /><?php echo $option ?><br /> 

這可以在PHP中檢索用一個簡單的循環:

<?php 
if (isset($_POST['chk_group'])) { 
    $optionArray = $_POST['chk_group']; 
    for ($i=0; $i<count($optionArray); $i++) { 
     echo $optionArray[$i]."<br />"; 
    } 
} 
?> 

接下來,你可以重新顯示形式與「檢查」 ARG如果選項是$ optionArray數組中

0

這取決於如何你處理你的表單變量。以下假定不進行處理並且數據已發佈。

確定如果勾選「名」的值設置爲「值」,如果是,檢查:

<input type="checkbox" name="<?php echo $option ?>" value="<?php echo $optionid ?>" <?php if($_POST[$option]==$optionid){echo' checked="checked"';} ?>> <?php echo $option ?> 
...